【问题标题】:Best practices for writing a log for a Java server为 Java 服务器编写日志的最佳实践
【发布时间】:2017-01-11 22:51:03
【问题描述】:

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

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

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

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

【问题讨论】:

  • 将日志写入服务器控制台的意义何在?没有人会看到它。即使尝试也完全浪费时间。此外,服务器程序在后台运行,因此它们没有控制台可以写入。
  • 我总是在从头开始之前寻找现有的解决方案。我知道一个事实,根据日志消息的类型将日志输出到不同的文件是非常有帮助的。这也带来了您想要进行多少日志记录的问题?也许以某种大小创建另一个文件或覆盖现有文件...很多可能性。
  • @RAZ_Muh_Taz 我想我真的只是想做足够多的日志记录来学习它的基础知识。
  • @Andreas 我认为你是对的。但我认为这在开发过程中会很好,这样您就可以在继续构建服务器时监控和验证服务器上发生的事情。
  • @tribes891 这是用于开发的,但您的问题是关于如何在服务器上设置/配置日志记录。 配置日志记录的能力是您应该使用诸如Apache Log4jLogbackjava.util.logging、...等日志记录库的原因。

标签: java logging server format


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-28
    • 2011-05-10
    • 2020-08-15
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多