我正在使用log4j2,并且具有以下log4j2.xml文件:
log4j2.xml配置文件(如下):
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="PropertiesConfig">
<Properties>
<Property name="baseDir">log/</Property>
<Property name="logName">report</Property>
</Properties>
<Appenders>
<Console name="Console"
target="SYSTEM_OUT"
immediateFlush="true">
<PatternLayout pattern="[%highlight{%-5level] %d %c{1}.%M() - %msg%n}" />
</Console>
<RollingFile name="RollingFile"
fileName="${baseDir}${logName}.log"
filePattern="${baseDir}${logName}_%d{yyyy-MM-dd}.log"
immediateFlush="false">
<PatternLayout pattern="[%-5level] %d %c{1}.%M() - %msg%n" />
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console" level="info" />
<AppenderRef ref="RollingFile" level="warn" />
</Root>
</Loggers>
</Configuration>
我的项目是一个使用Java的Web应用程序。如果我使用Serlvet的日志系统,例如:
import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
public class MySevlet {
private static final Logger LOGGER = LogManager.getLogger(MyServlet.class);
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
LOGGER.warn("hello?");
LOGGER.error("hello?");
//...more stuff here...
}
//...more stuff here...
}
项目文件夹结构(如下):
我遇到的问题是我可以看到控制台日志,但是没有写入任何文件,因此滚动文件附加器不起作用。
如果我运行本地程序(不使用Servlet),则控制台和滚动文件附加程序都可以工作。
知道为什么会这样吗?
谢谢!
PS:我正在使用Netbeans 8.2 + Tomcat 8.0