我正在使用基于OpenWRT的接入点设备中的 Lua 在其上开发一些软件。
我想为 Lua 找到一个好的日志库。你有什么建议吗?我检查了lsyslog。
你试过LuaLogging吗?见简介
一个小小的:https ://github.com/rxi/log.lua
用法:
local log = require "log"
log.trace(...)
log.debug(...)
log.info(...)
log.warn(...)
log.error(...)
log.fatal(...)
你想要日志记录有多花哨?Openwrt 上的 Lua 有 nixio 库。它通过 openlog()、syslog()、closelog() 提供 syslog 访问。 尼克西奥
我发现 lsyslog 对于 OpenWRT 来说已经足够好了。
http://luaforge.net/projects/lsyslog/
我可以使用以下提要 Makefile 从 OpenWRT 构建它。
include $(TOPDIR)/rules.mk
PKG_NAME:=lsyslog
PKG_VERSION:=5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://files.luaforge.net/releases/lsyslog/lsyslog/lsyslog-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/lsyslog
SUBMENU:=Lua
SECTION:=lang
CATEGORY:=Languages
TITLE:=lsyslog
URL:=http://luaforge.net/projects/lsyslog/
DEPENDS:=+lua
endef
define Package/lsyslog/description
lsyslog is simple binding API from Lua to syslog.
endef
define Build/Configure
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR)/ \
LIBDIR="$(TARGET_LDFLAGS)" \
CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) -std=gnu99 -fPIC" \
LD="$(TARGET_CROSS)ld -shared" \
so
endef
define Package/lsyslog/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(INSTALL_BIN) $(PKG_BUILD_DIR)/syslog.so $(1)/usr/lib/lua
endef
$(eval $(call BuildPackage,lsyslog))
老话题,我知道。
还有另一种方式来皮肤 syslog: luaposix
,包已经在 OpenWRT 中(至少 15.05.1)。使用luaposix
,您的代码可以短至:
log = require("posix.syslog")
log.syslog(log.LOG_INFO, "Hello, world!")
在 OpenWRT 上,有 lua-posix 库作为一个包。然后你可以使用 posix.syslog http://luaposix.github.io/luaposix/modules/posix.syslog.html。