为Java服务器编写日志的最佳实践

时间:2017-01-11 22:51:03

标签: java logging server format

我正在寻找关于最佳/常见做法的一些建议,为我用Java编写的游戏服务器编写日志(第一次使用服务器/客户端概念,我从未对日志记录做过任何事情)。我尝试了一些谷歌搜索,但涉及的关键词有点模糊,没有提出我的问题的任何答案。

我有一个服务器,包括用户,游戏大厅和游戏。我认为我应该创建一个日志来保存服务器上发生的所有事情的历史记录。在这个日志中,我想我应该记录服务器本身(启动,关闭,正在处理的命令)和套接字连接(新/丢失的客户端,传入/传出消息)的状态变化。

我不确定这是否是最好的事情,或者/或者还有一个日志,其中包含更多人类可读的消息,例如" Bob781加入了大厅#4。"或者" microman12在游戏中击败了sun44。"

  • 我应该将日志写入控制台还是文件? (2个单独的文件?)
  • 哪种格式最佳或最常用?它们应该是相同的格式吗?
  • 我遇到了" Common Log Format",这是套接字连接的最佳格式选择吗?它可以用于服务器状态吗?
  • 我应该在java.util.logging中使用某些内容还是只输出字符串?

1 个答案:

答案 0 :(得分:0)

您始终希望在从头开始之前查找现有解决方案。当您使用/创建日志记录时,我会根据我的经验建议以下提示

  1. 确保您可以随时随地检索日志。
  2. 根据您要查找的内容轻松查找日志文件。例如,如果特定游戏大厅出现问题,您应该能够轻松导航到与该游戏大厅相关的文件或文件目录。没有什么比解析巨大的巨大日志文件更糟糕了......
  3. 使每条记录消息都有意义。不要只是为了记录而记录东西。您将希望能够读取日志消息并相应地了解消息来自服务器代码的位置。当您遇到服务器代码中的错误时,这将有助于以后的工作。
  4. 将每条日志消息的时间标记在它创建的位置,而不是在将其写入日志文件时。