srvLogger.lua 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. --[[
  2. Author: neo
  3. Date: 2021-07-07 19:39:15
  4. LastEditTime: 2021-07-08 09:26:43
  5. LastEditors: Please set LastEditors
  6. Description: 按日切分日志
  7. --]]
  8. local skynet = require "skynet"
  9. require "skynet.manager"
  10. local core = require "skynet.core"
  11. local logger = nil
  12. local loggerDate = nil
  13. local function open()
  14. loggerDate = os.date("%Y-%m-%d", skynet_time())
  15. local path = skynet.getenv("logpath")
  16. local nodeName = skynet.getenv("nodeName")
  17. local fileName = string.format("%s%s-%s.log", path, nodeName, loggerDate)
  18. logger = skynet.launch("jmlogger", fileName)
  19. end
  20. local function logging(source, str)
  21. local currTime = skynet_time()
  22. if not logger then
  23. open()
  24. end
  25. if os.date("%Y-%m-%d", currTime) ~= loggerDate then
  26. skynet.kill(logger)
  27. open()
  28. end
  29. local s = string.format("[%s] [%s] %s", os.date("%H:%M:%S", currTime), skynet.address(source), str)
  30. if IS_TEST then
  31. print(s)
  32. end
  33. core.send(logger, 0, 0, s)
  34. end
  35. skynet.register_protocol {
  36. name = "text",
  37. id = skynet.PTYPE_TEXT,
  38. unpack = skynet.tostring,
  39. dispatch = function(_, source, msg)
  40. logging(source, msg)
  41. end
  42. }
  43. skynet.start(
  44. function()
  45. end
  46. )