Skip to content

andrelam/Syslog

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syslog

An Arduino library for logging to Syslog server via UDP protocol in IETF (RFC 5424) and BSD (RFC 3164) message format

Build Status Join the chat at https://gitter.im/arcao/Syslog

How to use, see examples.

Features

  • Supports original Syslog severity level and facility constants
  • Supports both Syslog messge formats: IETF (RFC 5424) and BSD (RFC 3164)
  • Supports printf-like formatting via logf methods (use vsnprintf method inside)
  • Supports fluent interface, see AdvancedLogging example
  • Allows to ignore sending specified severity levels with logMask function, see AdvancedLogging example
  • Independent on underlying network hardware. The network hardware library has to implement methods of UDP astract class only.

Compatible Hardware

The library uses the Arduino UDP Network API (UDP class) for interacting with the underlying network hardware. This means it Just Works with a growing number of boards and shields, including:

  • ESP8266 / ESP32
  • Arduino Ethernet
  • Arduino Ethernet Shield
  • Arduino YUN – use the included BridgeUDP in place of EthernetUDP, and be sure to call a Bridge.begin() first
  • Arduino WiFi Shield
  • Intel Galileo/Edison
  • Arduino/Genuino MKR1000
  • Arduino module RTL00(RTL8710AF), F11AMIM13 (RTL8711AM)
  • ... you tell me!

Syslog message formats

This library supports both Syslog message formats IETF (RFC 5424) and BSD (RFC 3164). The newer IETF format is used by default. If you want to use older "obsolete" BSD format, just specify it with SYSLOG_PROTO_BSD constant in a last constructor parameter.

Syslog syslog(udpClient, host, port, device_hostname, app_name, default_priority, SYSLOG_PROTO_BSD);
// or
Syslog syslog(udpClient, ip, port, device_hostname, app_name, default_priority, SYSLOG_PROTO_BSD);
// or
Syslog syslog(udpClient, SYSLOG_PROTO_BSD);

Limitations

  • This library is sending empty timestamp in the syslog messages. For IETF format it is NILVALUE (char -) in TIMESTAMP field, for BSD format the TIMESTAMP field is completely ommited. Syslog server should use a time of receiving message in this case. It is OK in most cases. This issue will be fixed in some of the next releases.
  • The logf/vlogf functions allocate formatting buffer for 80 chars. If you need more or less, please change SYSLOG_FMT_BUFFER_SIZE in Syslog.h

About

An Arduino library for logging to Syslog server in IETF format (RFC 5424) and BSD format (RFC 3164)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 100.0%