我有兩個Web應用程序(Proj1和Proj2)。PropertyConfigurator.configure多個log4j文件
log4j.properties文件是在外部位置(大寫C:\ proj1_log4j.properties和C:\ proj2_log4j.properties)
有兩個用於初始化log4j的上述網絡應用程序Servlet過濾器。代碼寫在兩個過濾器的init()方法中。
爲Proj1(文件名= Proj1Filter.java)
public void init(FilterConfig arg0) throws ServletException {
final String LOG_CONFIG_FILE = "C:/proj1_log4j.properties";
File loggingPropFile = new File(LOG_CONFIG_FILE);
FileInputStream fis;
try {
fis = new FileInputStream(loggingPropFile);
Properties properties = new Properties();
properties.load(fis);
PropertyConfigurator.configure(properties);
LOGGER.info("Logger 111 initialiZed successfully...");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
log4j的初始化如下爲Proj2如下log4j的初始化(文件名= Proj2Filter.java)
public void init(FilterConfig arg0) throws ServletException {
final String LOG_CONFIG_FILE = "C:/proj2_log4j.properties";
File loggingPropFile = new File(LOG_CONFIG_FILE);
FileInputStream fis;
try {
fis = new FileInputStream(loggingPropFile);
Properties properties = new Properties();
properties.load(fis);
PropertyConfigurator.configure(properties);
LOGGER.info("Logger 222 initialized successfully...");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
proj1_log4j.properties
log4j.rootLogger=INFO, stdout1, proj1
log4j.appender.stdout1=org.apache.log4j.ConsoleAppender
log4j.appender.stdout1.Target=System.out
log4j.appender.stdout1.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.proj1=org.apache.log4j.RollingFileAppender
log4j.appender.proj1.File=proj1.log
log4j.appender.proj1.MaxFileSize=10MB
log4j.appender.proj1.MaxBackupIndex=10
log4j.appender.proj1.layout=org.apache.log4j.PatternLayout
log4j.appender.proj1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
proj2_log4j.properties
log4j.rootLogger=INFO, stdout1, proj2
log4j.appender.stdout1=org.apache.log4j.ConsoleAppender
log4j.appender.stdout1.Target=System.out
log4j.appender.stdout1.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.proj2=org.apache.log4j.RollingFileAppender
log4j.appender.proj2.File=proj2.log
log4j.appender.proj2.MaxFileSize=10MB
log4j.appender.proj2.MaxBackupIndex=10
log4j.appender.proj2.layout=org.apache.log4j.PatternLayout
log4j.appender.proj2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
現在就啓動Tomcat是越來越創建僅proj1.log。 proj2.log沒有被創建。 所有的日誌都將proj1.log。 即使來自proj2的記錄器語句也是在proj1.log文件中打印日誌。
可能是什麼原因。
我想要的是,應創建2個日誌文件,proj1.log和proj2.log。
感謝Bhargav。但是如果兩個項目的根包發生相同的話呢? – user1771680
你可以挖掘,直到它達到一個階段,兩者會有所不同,並提及它。 –
那麼,我項目中的所有模塊都具有相同的封裝結構,所以這對我來說是不可能的:( – user1771680