Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scottchiefbaker/arduino-simplesyslog
Simple library to add syslog capabilities to your Arduino projects
https://github.com/scottchiefbaker/arduino-simplesyslog
Last synced: 9 days ago
JSON representation
Simple library to add syslog capabilities to your Arduino projects
- Host: GitHub
- URL: https://github.com/scottchiefbaker/arduino-simplesyslog
- Owner: scottchiefbaker
- License: gpl-3.0
- Created: 2023-03-03T21:39:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-02T20:59:46.000Z (about 1 month ago)
- Last Synced: 2024-10-17T23:00:01.539Z (19 days ago)
- Language: C++
- Size: 33.2 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Arduino SimpleSyslog
Easily add remote syslog capabilities to your ESP32/ESP8266 projects.
## Installation
Clone this repo to your Arduino libraries directory. On Linux this is `~/Arduino/libraries/`.
Alternately you can just drop `SimpleSyslog.h` in the same directory as your `.ino`
script.## Usage
Include the SimpleSyslog library and create a global `syslog` object with your environment settings:
```C++
#includeSimpleSyslog syslog("ArduinoHostname", "ArduinoApp", "192.168.5.222");
```
Optional settings are port (default: 514) and maximum packet size (default: 128). To use port 5140 with a packet size of 400:
```
SimpleSyslog syslog("ArduinoHostname", "ArduinoApp", "192.168.5.222", 5140, 400);
```Send a syslog message:
```C++
// Simple string syntax
syslog.printf(FAC_LOCAL7, PRI_INFO, "This is a simple LOCAL7.INFO syslog packet");// Advanced printf() syntax supported also
syslog.printf(FAC_USER, PRI_DEBUG, "Uptime: %s", millis());
```Valid facilities:
* `FAC_USER`
* `FAC_LOCAL0`
* `FAC_LOCAL1`
* `FAC_LOCAL2`
* `FAC_LOCAL3`
* `FAC_LOCAL4`
* `FAC_LOCAL5`
* `FAC_LOCAL6`
* `FAC_LOCAL7`Valid severities:
* `PRI_EMERGENCY`
* `PRI_ALERT`
* `PRI_CRITICAL`
* `PRI_ERROR`
* `PRI_WARNING`
* `PRI_NOTICE`
* `PRI_INFO`
* `PRI_DEBUG`## Configuring `rsyslog` to receive messages
You will need to configure your `/etc/rsyslog.conf` to accept incoming UDP syslog
messages. Add these lines to your config and restart `rsyslog````
$ModLoad imudp
$UDPServerRun 514
```You may want to configure a specific rule to handle your messages:
```
# /etc/rsyslog.d/arduino.conf
template(name="arduino" type="string" string="/var/log/arduino.log")if ($syslogfacility-text == "local7" or $syslogfacility-text == "user") then {
action(type="omfile" DynaFile="arduino" FileCreateMode="0644")
stop
}
```## Based on
Borrowed from [jerryr/EspSyslog](https://github.com/jerryr/EspSyslog) and improved upon.