- Joined
- Feb 15, 2016
- Messages
- 239
- Reaction score
- 58
Request:
Add support for logging to syslog (Linux & Mac), or EventLog (Windows).
Rationale:
Add support for logging to syslog (Linux & Mac), or EventLog (Windows).
Rationale:
- Even when writing to SSDs, various server routines seem to block on logging I/O, and therefore slowdown server response times.
- Somewhat of a workaround, is that we've symlinked StarMade/logs/ to /dev/shm/smlogs/ which means logs are now just written into a RAM-based filesystem.
- Each respective OS has a standardized central logging function. This includes a means of buffering log writes (so that writing to logs no longer blocks I/O), and a means of moving logging activity off-server.
- Sometimes catching a bug requires being able to look further back than 100MB of logs, and the game's built-in log rotation scheme simply deletes this older information.
- At least in the unix world, there are very powerful log processing tools such as rsyslog: when a StarMade server bunches everything into just two files, processing such data gets quite complicated. Dealing with things like duplicate entries requires code changes...whereas with syslog support, sever admins have more control over this, without consuming developer resources. For instance, duplicate message suppression, multithreaded logging, support for over a million log entries per second (without crashing the server), buffering, off-server logging, inline parsing, spooling, compression, direct-to-database writes, etc.
- After over a month of testing (see below), we've been unable to identify any negative performance impacts when redirecting all existing console output to syslog.
- Perhaps start with a config option that allows for an either/or: enabling owners to select built-in logging or writing to syslog (with a caveat that the server owner MUST also configure adequate log rotation).
- Please also ensure that information written to serverlog.txt.0 and log.txt.0, are also written to the console. This is currently not the case.
Last edited: