statLogger.lua 716 B

12345678910111213141516171819202122232425262728
  1. -- 写日志逻辑
  2. local skynet = require "skynet"
  3. local c = require "skynet.core"
  4. local statLogger = class("statLogger")
  5. function statLogger:ctor(file)
  6. self.loggerDir = skynet.getenv("statistic_path")
  7. self.file = file
  8. self.fileHandle = nil
  9. self.lastWriteTime = nil
  10. self.filename = string.format("%s%s.log", self.loggerDir, file)
  11. end
  12. function statLogger:open()
  13. self.fileHandle = skynet.call(".logMgr", "lua", "open", self.filename)
  14. end
  15. function statLogger:write(message)
  16. if not self.fileHandle then -- 日志文件还没有打开
  17. self:open()
  18. end
  19. c.send(self.fileHandle, 0, 0, message)
  20. -- 最后写入时间
  21. self.lastWriteTime = os.time()
  22. end
  23. return statLogger