下面是log4j.properties文件,我在一个项目中使用它来生成日志。但是日志并没有在提到的位置生成。
log4j.rootLogger=DEBUG,file
# log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.org.apache.ibatis.MaxFileSize=15MB
log4j.appender.org.apache.ibatis.MaxBackupIndex=10
log4j.appender.file.File=E:\logs\file.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p] %d %c %M - %m%n
因此,我接着编写了一个示例jsp,如下所示,发现out.println(app.getClass());
只返回ConsoleAppender
类,当我在Windows Server 2012上的TOMCAT中部署代码时,会发生这种情况。如果在Windows Server 2008上的TOMCAT中部署相同的代码,正确生成日志,并返回属性文件中提到正确附加器我已经尝试将日志位置放置在Tomcat文件夹的内部和外部,但仍然没有成功。我们使用的log4j版本是1.2.17。
<%@page import="org.apache.log4j.*"%>
<%@page import="java.io.*"%>
<%@page import="java.lang.*"%>
<%@page import="java.util.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%! static Logger logger = Logger.getLogger("sample_jsp");
%>
<%
Enumeration e = Logger.getRootLogger().getAllAppenders();
while ( e.hasMoreElements() ){
Appender app = (Appender)e.nextElement();
out.println(app.getClass());
if ( app instanceof ConsoleAppender ){
//out.println("File: " + ((ConsoleAppender)app).getFile());
}
}
%>
</body>
</html>
异常行为的原因可能是什么?请帮助
2条答案
按热度按时间tkclm6bt1#
log4j.properties(日志4j属性)
在www.example.com中 Baseclass.java
zbdgwd5y2#
检查应用程序启动日志。
在我的例子中,项目是作为WAR文件部署到tomcat的,项目有2个SLF4J实现,“log4j”和“logback”。类路径包含多个SLF4J绑定...."。通过pom中的依赖项排除删除了回登录,之后创建了该文件并由日志填充。
查看此链接https://www.baeldung.com/slf4j-classpath-multiple-bindings