Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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/9/loops/2.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 我的servlet中的log4j正在记录到tomcat根目录_Java_Tomcat_Servlets_Log4j_Axis2 - Fatal编程技术网

Java 我的servlet中的log4j正在记录到tomcat根目录

Java 我的servlet中的log4j正在记录到tomcat根目录,java,tomcat,servlets,log4j,axis2,Java,Tomcat,Servlets,Log4j,Axis2,我正在编写一个将在Tomcat(或其他容器)中运行的servlet,并希望使用Log4J从我的servlet进行日志记录。但是,我的RollingFileAppender正在登录到Tomcat根目录,而不是webapp根目录。所以Tomcat_dir/mylog.log而不是Tomcat_dir/webapps/MyServlet/mylog.log 这是我的属性文件(我可以看出它正在加载,因为它正确设置了日志文件名): 我觉得我缺少了一些简单的东西,尽管我看到的大多数示例都使用了绝对路径或se

我正在编写一个将在Tomcat(或其他容器)中运行的servlet,并希望使用Log4J从我的servlet进行日志记录。但是,我的RollingFileAppender正在登录到Tomcat根目录,而不是webapp根目录。所以
Tomcat_dir/mylog.log
而不是
Tomcat_dir/webapps/MyServlet/mylog.log

这是我的属性文件(我可以看出它正在加载,因为它正确设置了日志文件名):

我觉得我缺少了一些简单的东西,尽管我看到的大多数示例都使用了绝对路径或servlet上下文(在我的代码部分中没有)


编辑:我的servlet是一个使用Axis2从WSDL生成的服务,这可能与此有关。您是否完全确定应用程序已加载并使用此配置文件?也许您的servlet使用tomcats配置文件


若要仔细检查,请在转换模式中添加一个重大更改,并验证您的消息是否使用该模式记录。

您是否绝对确定应用程序已加载并使用此配置文件?也许您的servlet使用tomcats配置文件


要进行双重检查,请向转换模式添加一个重大更改,并验证您的消息是否使用该模式记录。

使用
${catalina.base}
变量,如前所述


如前所述,使用
${catalina.base}
变量


是的,我已经将字符串JAX添加到我的转换模式中,现在我得到这样的日志:
[INFO](2011年5月5日09:27:30730)(?:?)JAX----记录器初始化---
是的,我已经将字符串JAX添加到我的转换模式中,现在我得到这样的日志:
[INFO](2011年5月5日09:27:30730)(?:?)JAX----记录器初始化---
这对我不起作用。它只是忽略文件路径的${catalina.base}部分。这可能是因为我的servlet实际上是使用Axis从WSDL生成的。这对我来说不起作用。它只是忽略文件路径的${catalina.base}部分。这可能是因为我的servlet实际上是使用Axis从WSDL生成的。
#logfile is an appender (references log4j.appender.logfile)
log4j.rootLogger=DEBUG, console, logfile
# Logging levels from most logging to least: TRACE, DEBUG, INFO, WARN, ERROR, FATAL

# Setup for console logging
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.Threshold=WARN
log4j.appender.console.layout.ConversionPattern=[%p](%d{dd MMM yyyy HH:mm:ss,SSS}) (%F:%L) - %m%n

#setup for logging to files
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=mylog.log
log4j.appender.logfile.Append=true
log4j.appender.logfile.MaxFileSize=10000KB
log4j.appender.logfile.Threshold=ALL
log4j.appender.logfile.MaxBackupIndex=10
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%p](%d{dd MMM yyyy HH:mm:ss,SSS})(%F:%L) - %m%n
log4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.file=${catalina.base}/logs/localhost.
log4j.appender.LOCALHOST.encoding=UTF-8
log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.conversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.LOCALHOST.append=true