Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
g41797 committed Oct 11, 2024
1 parent 27bc360 commit f5a5401
Show file tree
Hide file tree
Showing 4 changed files with 89 additions and 10 deletions.
77 changes: 75 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
![](_logo/syslogzig-removebg.png)

# Zig syslog client
# <center>Zig syslog client</center>

<center>

[![CI](https://github.com/g41797/syslog/actions/workflows/ci.yml/badge.svg)](https://github.com/g41797/syslog/actions/workflows/ci.yml)[![Wiki](https://img.shields.io/badge/Wikipedia-%23000000.svg?style=for-the-badge&logo=wikipedia&logoColor=white)](https://en.wikipedia.org/wiki/Syslog)

</center>


This is a [syslog](https://en.wikipedia.org/wiki/Syslog) client library for Zig:

Expand Down Expand Up @@ -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_<severity>(slog: *Syslog, msg: []const u8) !void {...}
....
logger.write_debug("Hello, Zig!");
```
- print: message will be formatted before send
```zig
pub inline fn print_<severity>(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 [![clion](_logo/CLion_icon.png)][refclion]

<br />
<center>

*Powered by* [![clion](_logo/CLion_icon.png)][refclion]

[refclion]: https://www.jetbrains.com/clion/

</center>
3 changes: 2 additions & 1 deletion _notes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -390,5 +390,6 @@ Import

zig fetch --save=network git+https://github.com/ikskuh/zig-network


Github MD
https://gist.github.com/nikhilnayyar002/7a35e653d3d590e317c829243e73b110

17 changes: 10 additions & 7 deletions src/syslog.zig
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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;
Expand All @@ -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));
Expand All @@ -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();

Expand Down
2 changes: 2 additions & 0 deletions src/syslog_tests.zig
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ fn hellozig() !void {
});
defer logger.deinit();

logger.setfilter(.debug);

// Send syslog message
try logger.write_info("Hello, Zig!");

Expand Down

0 comments on commit f5a5401

Please sign in to comment.