diff --git a/README.md b/README.md
index 3f8b7ec..88dd364 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,13 @@

-# Zig syslog client
+#
Zig syslog client
+
+
[](https://github.com/g41797/syslog/actions/workflows/ci.yml)[](https://en.wikipedia.org/wiki/Syslog)
+
+
This is a [syslog](https://en.wikipedia.org/wiki/Syslog) client library for Zig:
@@ -130,7 +134,76 @@ Import *syslog*:
const syslog = @import("syslog");
```
+## Usage
+
+### Configuration
+
+syslog uses following configuration:
+```zig
+pub const SyslogOpts = struct {
+ // application:
+ name: []const u8 = "zigprocess",
+ fcl: rfc5424.Facility = .local7,
+
+ // transport:
+ proto: Protocol = .udp,
+ addr: []const u8 = "127.0.0.1",
+ port: u16 = 514,
+};
+```
+
+### Initialization
+
+```zig
+ var logger: syslog.Syslog = .{};
+ try logger.init(std.testing.allocator, .{
+ .name = "runner",
+ .fcl = .daemon
+ .port = 12345,
+ });
+ defer logger.deinit();
+```
+
+After initialization you can call syslog on different threads.
+
+### Logging
+There are two groups of APIs:
+- write: message is straight text
+```zig
+ pub inline fn write_(slog: *Syslog, msg: []const u8) !void {...}
+ ....
+ logger.write_debug("Hello, Zig!");
+```
+- print: message will be formatted before send
+```zig
+ pub inline fn print_(slog: *Syslog, comptime fmt: []const u8, msg: anytype) !void {...}
+ ....
+ const name = "World";
+ logger.print_debug("Hello, {s}!", .{name});
+```
+
+### Filtering
+
+Set filter:
+```zig
+ // disable send messages with .info & .debug severities
+ logger.setfilter(.info);// disable send messages with .info & .debug severities
+```
+
+Reset filter:
+```zig
+ logger.setfilter(null);
+```
+
+## License
+[MIT](LICENSE)
-Powered by [][refclion]
+
+
+
+
+*Powered by* [][refclion]
[refclion]: https://www.jetbrains.com/clion/
+
+
\ No newline at end of file
diff --git a/_notes.txt b/_notes.txt
index bdd908a..2fb2f31 100644
--- a/_notes.txt
+++ b/_notes.txt
@@ -390,5 +390,6 @@ Import
zig fetch --save=network git+https://github.com/ikskuh/zig-network
-
+Github MD
+ https://gist.github.com/nikhilnayyar002/7a35e653d3d590e317c829243e73b110
diff --git a/src/syslog.zig b/src/syslog.zig
index c9a1228..78d88d8 100644
--- a/src/syslog.zig
+++ b/src/syslog.zig
@@ -33,7 +33,7 @@ pub const Syslog = struct {
frmtr: Formatter = undefined,
sndr: Sender = undefined,
ready: bool = false,
- filter: Severity = .debug,
+ filter: ?Severity = null,
pub fn init(slog: *Syslog, allocator: Allocator, conf: SyslogOpts) !void {
slog.mutex.lock();
@@ -121,10 +121,11 @@ pub const Syslog = struct {
return error.NotReady;
}
- if (@intFromEnum(svr) > @intFromEnum(slog.filter)) {
- return;
+ if(slog.filter != null){
+ if (@intFromEnum(svr) >= @intFromEnum(slog.filter.?)) {
+ return;
+ }
}
-
_ = try slog.*.sndr.send(try slog.*.frmtr.build(svr, msg));
errdefer slog.ready = false;
@@ -140,8 +141,10 @@ pub const Syslog = struct {
return error.NotReady;
}
- if (@intFromEnum(svr) > @intFromEnum(slog.filter)) {
- return;
+ if(slog.filter != null){
+ if (@intFromEnum(svr) >= @intFromEnum(slog.filter.?)) {
+ return;
+ }
}
_ = try slog.*.sndr.send(try slog.*.frmtr.format(svr, fmt, msg));
@@ -151,7 +154,7 @@ pub const Syslog = struct {
return;
}
- pub fn setfilter(slog: *Syslog, svr: Severity) void {
+ pub fn setfilter(slog: *Syslog, svr: ?Severity) void {
slog.mutex.lock();
defer slog.mutex.unlock();
diff --git a/src/syslog_tests.zig b/src/syslog_tests.zig
index 0c98e57..88b929b 100644
--- a/src/syslog_tests.zig
+++ b/src/syslog_tests.zig
@@ -170,6 +170,8 @@ fn hellozig() !void {
});
defer logger.deinit();
+ logger.setfilter(.debug);
+
// Send syslog message
try logger.write_info("Hello, Zig!");