java - 配置 log4j 以在运行时记录到自定义文件

标签 java log4j

谁能指导我如何配置 log4j 以登录到我在运行时指定的特定文件。日志文件的名称和路径是在运行时生成的,应用程序必须登录到该文件特定文件。

log4j.properties 文件中的文件附加程序条目通常指向应用程序将使用的日志文件。但是在这种情况下,我想从命令行读取日志文件路径并记录到该特定文件。

我怎样才能做到这一点?

最佳答案

您也可以从 log4j.properties 文件中执行此操作。使用下面的示例文件,我添加了系统属性 ${logfile.name}:

# logfile is set to be a RollingFileAppender
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${logfile.name}
log4j.appender.logfile.MaxFileSize=10MB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%-5p]%d{yyyyMMdd@HH\:mm\:ss,SSS}\:%c - %m%n

然后可以通过两种不同的方式设置日志文件名:

  1. 作为命令行,系统属性传递给 java "-Dlogfile.name={logfile}"
  2. 在 java 程序中直接设置系统属性(在调用 log4j 之前)。

    System.setProperty("logfile.name","some path/logfile name string");

关于java - 配置 log4j 以在运行时记录到自定义文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324053/

相关文章:

scala - 使用 Lift 配置日志记录

java - JAX-RS Web 应用程序中的 Apache CXF OAuthDataProvider

java - 要求更新的技术

java - 为什么 log4j 消息会产生 UTC 时间戳?

python - 来自执行程序的 PySpark 日志记录

log4j - 如何通过log4j控制每日滚动和最大文件大小的日志文件?

java - 打开弹出窗口后是否有一种简单的方法可以进行上下文特定的导航

java - 使用itext java向pdf添加 anchor

Java:为什么它使用固定数量的内存?或者它如何管理内存?

java - 线程中的异常 "AWT-EventQueue-0"java.lang.IllegalArgumentException : input == null