You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.4 KiB
Lua
62 lines
1.4 KiB
Lua
local skynet = require "skynet"
|
|
require "skynet.manager"
|
|
local fd=nil
|
|
local fname=nil
|
|
local logfolder =nil
|
|
|
|
skynet.register_protocol {
|
|
name = "text",
|
|
id = skynet.PTYPE_TEXT,
|
|
unpack = skynet.tostring,
|
|
dispatch = function(_, address, msg)
|
|
if not logfolder then
|
|
return
|
|
end
|
|
local now=os.date("*t",os.time())
|
|
local s=""..now.year..now.month..now.day
|
|
local foldername = string.format("%d_%02d_%02d.log",now.year,now.month,now.day)
|
|
|
|
local logpath=logfolder..foldername
|
|
if (not fname) or logpath~=fname then
|
|
if fd then
|
|
fd:close()
|
|
fd=nil
|
|
end
|
|
fname = logpath
|
|
end
|
|
|
|
if not fd then
|
|
fd=io.open(logpath,"a+")
|
|
end
|
|
|
|
if fd then
|
|
local content = string.format("%s:%08x(%.2f): %s",os.date("%y/%m/%d %H:%M:%S"), address, skynet.time(), msg..'\r\n')
|
|
print(content)
|
|
fd:write(content)
|
|
fd:flush()
|
|
else
|
|
--print(fname)
|
|
end
|
|
end
|
|
|
|
}
|
|
|
|
skynet.register_protocol {
|
|
name = "SYSTEM",
|
|
id = skynet.PTYPE_SYSTEM,
|
|
unpack = function(...) return ... end,
|
|
dispatch = function()
|
|
if not fd then
|
|
fd:close()
|
|
fname=nil
|
|
end
|
|
end
|
|
|
|
}
|
|
|
|
skynet.start(function()
|
|
logfolder =PROJ_ROOT.."/log/"
|
|
local err=os.execute("mkdir "..logfolder)
|
|
skynet.register ".logger"
|
|
end)
|