我有以下 log4j.properties 文件:
log.path=/var/log/MyApp
log4j.rootLogger=INFO, file
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File = MyApp.log
log4j.appender.file.Append = true
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=1000
log4j.appender.file.DatePattern = '.'yyy-MM-dd
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern =%d{yyyy-MM-dd HH:mm:ss} %t/%c{1} [%p] %m%n
当我运行 MyApp 时,我获取 MyApp.log 文件。我想知道是否可以在代码中为两个主类设置两个文件?像这样:
object MyApp1 {
def main(args: Array[String]) = {
log4j.setName("File" -> "MyApp1.log")
println("HelloWorld")
}
}
object MyApp2 {
def main(args: Array[String]) = {
log4j.setName("File" -> "MyApp2.log")
println("HelloWorld")
}
}
然后,当我运行 Myapp1 时,它将创建 Myapp1.log,当我运行 Myapp2 时,它将创建 Myapp2.log
最佳答案
文件名可以在 log4j.properties 文件中参数化并作为 JVM 参数传递,
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File = ${ApplicationName}.log
可以将ApplicationName作为带有实际文件名的JVM参数传递,
-DApplicationName=Myapp1
同一个 log4j.properties 文件可以由两个应用程序共享,并且您可以在每个应用程序的 JVM 参数中传递应用程序名称。
关于java - 如何创建两个日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63883231/