Debugging 如何在web.xml和log4j.properties中配置log4j输出文件路径?
我开发了一个web应用程序,可以在其中注册员工 我的Debugging 如何在web.xml和log4j.properties中配置log4j输出文件路径?,debugging,configuration,log4j,web.xml,properties-file,Debugging,Configuration,Log4j,Web.xml,Properties File,我开发了一个web应用程序,可以在其中注册员工 我的web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Employee Registration</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>sapient</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>sapient</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
</web-app>
}
我已经创建了一个名为resource
的包,并在中创建了一个log4j.properties文件
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
但是我的日志不是在C:
drive中创建的
是否需要在web.xml中配置某些内容?
我已经包括了log4j.jar文件。您的问题与SpringMVC无关。这只是一个Log4J配置问题。(请编辑您的问题) 您是否正确设置了记录器?(例如,允许调试级别,并将
文件
附加器设置为记录器)
在您的配置中有类似的东西(我只是通过内存来回忆语法,如果有任何错误,请自己修复)
差不多吧
另外,确保类路径中没有其他log4j.properties或log4j.xml。Log4J可能会加载它们而不是您的,这导致了问题。您需要包括-
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/resource/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
log4jConfigLocation
/WEB-INF/resource/log4j.properties
org.springframework.web.util.Log4jConfigListener
在web.xml中。然后它就会正常工作。在参考资料文件夹中包含以下log4j.properties文件
log4j.rootCategory=INFO,S,rollingFile
log4j.appender.S =org.apache.log4j.ConsoleAppender
log4j.appender.S.layout =org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
log4j.appender.rollingFile = org.apache.log4j.DailyRollingFileAppender
#provide path to your location where you want logs created. For now its logs folder of tomcat.
log4j.appender.rollingFile.File = ${catalina.home}/logs/loging.log
log4j.appender.rollingFile.Append = true
log4j.appender.rollingFile.MaxFileSize=2000KB
log4j.appender.rollingFile.MaxBackupIndex=9
log4j.appender.rollingFile.Threshold = ALL
log4j.appender.rollingFile.DatePattern = '.'yyy-MM-dd
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
用这个替换你的代码。当然,它可以正常工作。在web.xml中添加以下代码
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/resource/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
# Root logger option
log4j.rootLogger=DEBUG, file # Redirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender #outputs to
Tomcat home log4j.appender.file.File=${catalina.home}/logs/myapp.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}
%-5p %c{1}:%L - %m%n
在你的课堂上添加这个代码
private static final Logger logger = Logger.getLogger(NameOfYourrClass.class);
logger.debug("This is Error message", new Exception("Testing"));
在函数中添加以下代码
private static final Logger logger = Logger.getLogger(NameOfYourrClass.class);
logger.debug("This is Error message", new Exception("Testing"));
参考这个链接,我强烈建议OP采用SLF4J。您仍然可以使用Log4J作为日志记录的后端,但这会简化配置,您可以在将来更改日志记录后端,并在/WEB-INF/resource/下添加文件Log4J.properties,其中包含以下代码
#Root logger选项Log4J.rootLogger=DEBUG,文件#将日志消息重定向到日志文件log4j.appender.file=org.apache.log4j.RollingFileAppender#输出到Tomcat home log4j.appender.file.file=${catalina.home}/logs/myapp.log log4j.appender.file.MaxFileSize=5MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyyyy-MM-dd HH:MM:ss}%-5p%c{1}:%L-%m%n
工作起来很有魅力。谢谢