SQL appender
The SQL appender can be used to write log messages to a SQL database table. It uses LuaSQL, therefore any database supported by LuaSQL can be used.
function logging.sql{
connectionfactory = function,
[tablename = string,]
[logdatefield = string,]
[loglevelfield = string,]
[logmessagefield = string,]
[keepalive = boolean],
}
connectionfactory:
This must be a function that creates a LuaSQL connection object. This function will be called everytime a connection needs to be created.tablename:
The name of the table to write the log requests. Default value is"LogTable".logdatefield:
The name of the field to write the date of each log request. Default value is"LogDate".loglevelfield:
The name of the field to write the level of each log request. Default value is"LogLevel".logmessagefield:
The name of the field to write the message of each log request. Default value is"LogMessage".keepalive:
In every log request a connection to the database is opened, the message is written, and the connection is closed.
If the user wants to keep the connection opened he can specifykeepalive = true.
Example
require"logging.sql"
require"luasql.jdbc"
local env, err = luasql.jdbc('com.mysql.jdbc.Driver')
local logger = logging.sql {
connectionfactory = function()
local con, err = env:connect('jdbc:mysql://localhost/test',
'tcp', '123')
assert(con, err)
return con
end,
keepalive = true,
}
logger:info("logging.sql test")
logger:debug("debugging...")
logger:error("error!")