2017-01-11 44 views
1

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

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

我不确定这是最好的做法,或者相反/还有一个更多的人类可读消息,如“Bob781加入大厅#4”的日志。或者“microman12在比赛中击败sun44”。

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

在服务器上向控制台写入日志有什么意义?没有人会看到它。即使尝试也浪费时间。此外,服务器程序在后台运行,所以它们不需要*控制台来写入。 – Andreas

+0

我总是从头开始寻找现有的解决方案。我知道有一个事实,即将日志输出到不同的文件取决于它所属的日志消息的类型是非常有用的。这也提出了你想要做多少日志记录的问题?也许在某种程度上创建另一个文件或覆盖现有的文件...很多的可能性。 –

+0

@RAZ_Muh_Taz我想我真的只是想做足够的日志记录来学习它的基础知识。 – tribes891

回答

0

您总是想从头开始寻找现有解决方案。当您使用/创建日志,我建议根据我的经验,下面的提示

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