Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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/2/csharp/294.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 覆盖tomcat中webapps的所有log4j.properties_Java_Tomcat_Logging_Log4j - Fatal编程技术网

Java 覆盖tomcat中webapps的所有log4j.properties

Java 覆盖tomcat中webapps的所有log4j.properties,java,tomcat,logging,log4j,Java,Tomcat,Logging,Log4j,我在OpenSuse Leap 42.2上运行ApacheTomcat 7.0.59,使用Java 1.8.0_65,并部署了几个Web应用程序。有些是我自己的,有些是第三方的 一些Web应用程序在其类路径中附带log4j.properties文件。现在我想要一个全局log4j.properties文件,它覆盖所有其他文件,这样我就可以将所有日志信息聚合到一个大的my-tomcat.log文件中 我所做的是添加VM标志-Dlog4j.configuration=file:///path/to/m

我在OpenSuse Leap 42.2上运行ApacheTomcat 7.0.59,使用Java 1.8.0_65,并部署了几个Web应用程序。有些是我自己的,有些是第三方的

一些Web应用程序在其类路径中附带log4j.properties文件。现在我想要一个全局log4j.properties文件,它覆盖所有其他文件,这样我就可以将所有日志信息聚合到一个大的my-tomcat.log文件中

我所做的是添加VM标志-Dlog4j.configuration=file:///path/to/my/custom-log4j.properties 到tomcat的setenv.sh文件,它基本上工作得很好。现在我有了自己的my-tomcat.log文件,其中包含所有日志信息

但问题是:“旧”日志文件仍然被写入。log4j似乎仍在读取所有特定于应用程序的log4j.properties文件

例如,我的custom-log4j.properties文件如下所示:

# Set root logger level to error
log4j.rootLogger=INFO, File


###### Console appender definition #######

# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout

# use log4j NDC to replace %x with tenant domain / username
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n 
#log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n

###### File appender definition #######
log4j.appender.File.Threshold=INFO
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=eWork.log
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
# Set root logger level to error
log4j.rootLogger=error, Console, File

###### Console appender definition #######

# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout

# use log4j NDC to replace %x with tenant domain / username
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n 
#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n

###### File appender definition #######
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=alfresco.log
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
我的一个webapps日志文件如下所示:

# Set root logger level to error
log4j.rootLogger=INFO, File


###### Console appender definition #######

# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout

# use log4j NDC to replace %x with tenant domain / username
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n 
#log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n

###### File appender definition #######
log4j.appender.File.Threshold=INFO
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=eWork.log
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
# Set root logger level to error
log4j.rootLogger=error, Console, File

###### Console appender definition #######

# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout

# use log4j NDC to replace %x with tenant domain / username
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n 
#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n

###### File appender definition #######
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=alfresco.log
log4j.appender.File.Append=true
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
创建my-tomcat.log和alfresco.log。尽管我没有在custom-log4j.properties中添加控制台appender,但是catalina.out文件还是被写入的。然而,catalina.out的含量非常少

您是否知道如何完全覆盖所有Web应用程序中的任何log4j.properties文件


非常感谢您的帮助,祝您度过愉快的一天

您的log4jjar文件位于哪里
catalina.out
无法避免,因为流程的
stdout
流就是这样的。感谢您的回复!每个webapp都有自己的log4jjar。如果您将log4j打包到每个应用程序中,它们都将独立初始化,不能一起工作。您的log4jjar文件位于哪里
catalina.out
无法避免,因为流程的
stdout
流就是这样的。感谢您的回复!每个webapp都有自己的log4jjar。如果您将log4j打包到每个应用程序中,它们都将独立初始化,不能一起工作。