我正在创建一个java.util.logging.FileHandler允许循环文件.运行我的应用程序的多个实例时,将为该应用程序的每个实例创建一个新的日志文件.我需要知道应用程序正在使用哪个文件,因为我想将日志文件上传到我的服务器以供进一步查看.如何判断某个FileHandler正在使用哪个文件?
最简单的方法是在文件名本身中放入某种标识符,即pattern创建 FileHandler 时的参数。由于这些是同一应用程序的实例,区分它们的一种方法是通过它们的进程 ID,因此您可以将其作为模式的一部分。更好的方法是通过命令行传入标识符并使用它来创建文件名。这样您就可以在某种意义上控制正在创建的文件。最后,如果您的应用程序知道为什么它与其他应用程序不同,例如它连接到特定的数据库服务器,那么您可以只使用该数据库服务器名称作为文件名的一部分。
编辑:似乎没有任何 API 可以获取 FileHandler 所使用的文件的名称。我建议研究 x4juli 中的日志扩展(它将许多 log4j 功能移植到 java.util.logging 规范):
您应该能够替换提供 getFile() 方法的 FileHandler 实例:
| 归档时间: |
|
| 查看次数: |
3815 次 |
| 最近记录: |