繁体   English   中英

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

[英]Best practices for writing a log for a Java server

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM