An asynchronous logging library for Lua 5.1/5.2 with modular writers, formatters, and network support.
lua-log is an asynchronous logging library for Lua 5.1 and 5.2 that provides a modular system for writing log messages to multiple destinations like console, files, and network services. It solves the problem of flexible and non-blocking log management in Lua applications by allowing developers to compose writers, formatters, and async handlers.
Lua developers building applications that require robust, configurable logging with support for async operations, network logging, or syslog integration.
Developers choose lua-log for its modular architecture, async capabilities, and extensive writer support, enabling custom logging pipelines without complex dependencies.
Asynchronous logging library for Lua
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports ZeroMQ, UDP, and LuaLanes for offloading logs to separate threads or processes, preventing main application blocking, as shown in async writer examples using 'log.writer.async.zmq'.
Allows combining multiple writers like console color, roll files, and network sockets in a single logger using 'log.writer.list.new', demonstrated in the roll file and console example.
Provides built-in formatters like concat and mix, and supports syslog and default log formats, enabling tailored message formatting, as seen in the syslog over UDP example.
Can send logs to remote syslog servers or processes via UDP or ZeroMQ, illustrated in examples with 'log.writer.net.udp' and 'log.writer.net.zmq'.
Many features require external libraries such as lzmq for ZeroMQ, LuaSocket for UDP, and lfs for file operations, increasing setup complexity and potential integration issues.
Setting up async logging or multi-destination pipelines involves intricate code, as seen in the complex example with thread initialization and network connections that require manual setup.
Specifically built for Lua 5.1 and 5.2, so it may not be compatible with newer Lua versions without modifications, limiting adoption in modern Lua ecosystems.
Some async writers, like those using LuaLanes, are marked as experimental in the README, which could lead to instability or lack of long-term support.