Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Java服务器编写日志的最佳实践_Java_Logging_Server_Format - Fatal编程技术网

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

为Java服务器编写日志的最佳实践,java,logging,server,format,Java,Logging,Server,Format,我正在寻找一些关于为我用Java编写的游戏服务器编写日志的最佳/常见做法的建议(第一次使用服务器/客户端概念,我从未做过任何日志记录)。我曾尝试过谷歌搜索,但涉及到的关键词有点含糊不清,无法回答我的问题 我有一个服务器,里面有用户、游戏大厅和游戏。我认为我应该创建一个日志来记录服务器上发生的一切。在这个日志中,我想我应该记录服务器本身(启动、关闭、正在处理的命令)和套接字连接(新的/丢失的客户端、传入/传出消息)的状态更改 我不确定这是不是最好的做法,或者相反,我也有一个日志,上面有更多人类可读

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

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

我不确定这是不是最好的做法,或者相反,我也有一个日志,上面有更多人类可读的信息,比如“Bob781加入游说团4”或“microman12在游戏中击败sun44”

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

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

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

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

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

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