Java 登录到tomcat上托管的文件

Java 登录到tomcat上托管的文件,java,logging,log4j,java.util.logging,Java,Logging,Log4j,Java.util.logging,我想将我的应用程序输出记录到tomcat服务器上托管的文件中。log4j.properties集为: log4j.rootLogger=INFO, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d

我想将我的应用程序输出记录到tomcat服务器上托管的文件中。log4j.properties集为:

log4j.rootLogger=INFO, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.R.MaxFileSize=1000KB
log4j.appender.R.MaxBackupIndex=5
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/initiate.log
log4j.appender.stdout=org.apache.log4j.FileAppender
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %p [%c] - %m%n

它确实创建了
initiate.log
文件,但我的日志语句没有添加到该文件中。问题是什么?或者我将如何使用java
Logger
设置属性以输出到fil

您需要定义一种方法来访问java代码中某个地方的文件记录器

import org.apache.log4j.Logger;

private static Logger logger= Logger.getLogger("R");//fileLoggerName: R in this case
然后访问文件,如下所示

logger.error("Whatever message is!!"); 
//OR 
logger.info("message to write", exceptionObjectForCompleteTrace);

不可能。因为它是我的桌面,我是管理员,为什么要两次定义appender“log4j.appender.stdout”?是否在jvm参数中设置
${catalina.home}