java游戏室使用log4j登录到单独的日志文件是个好主意?

Nik*_*sov 3 java logging spring log4j netty

我正在开发一个基于其他框架,netty和spring的游戏服务器.

我想知道使用log4j为每个游戏室生成一个单独的文件是否是一个好方法.由于许多游戏室服务器必须保持打开很多日志文件.另一方面,只有一个日志文件,这将是一个混乱,在分析问题时需要解析和过滤.

如果我需要知道如何实现它,许多日志文件仍然是一个很好的方法.我已经看过这个问题,配置log4j在运行时登录到自定义文件,但第一个答案不清楚,如何最小化每次尝试写入单独日志文件所需的代码行.我已经通过输入配置文件尝试了第二个答案

log4j.appender.logfile.File=${logfile.name}
Run Code Online (Sandbox Code Playgroud)

但框架有

PropertyConfigurator.configure(System.getProperty("log4j.configuration"));
Run Code Online (Sandbox Code Playgroud)

如果在开始时未指定日志文件,则会失败.

欢迎任何想法和意见!谢谢

UPD:这个链接对我来说似乎也很有用.Log4j记录到单独的文件但仍然:这是一个好主意,以及如何以最少的编码动态切换输出日志文件.

jmo*_*253 5

真的,当涉及到它时,拥有多个游戏室的日志文件将是矫枉过正的.文件I/O会对性能产生影响,即使这可以忽略不计.此外,作为程序员,我们有许多工具可用于解析和过滤信息,事实上这样做似乎更合理.

例如,只要每个游戏室在记录时匹配特定模式,您就可以轻松使用grep和Linux >运算符来解析游戏室X的所有数据并写入另一个文件,您可以单独分析它.让生产服务器执行此操作,当您可能甚至不查看日志时,不是资源的最佳使用.

例如,运行此命令可以快速获取有关游戏室X的所有信息:

grep "game room x" mainLog.log > outputToAnalyze.log
Run Code Online (Sandbox Code Playgroud)