我有以下 log4j2 配置
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="TRACE">
<Appenders>
<RollingRandomAccessFile name="SQLTiming" fileName="${web:rootDir}/log/SQLTiming.log"
filePattern="${web:rootDir}/log/SQLTiming-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{2} - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
<Console name="CONSOLE">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{2} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<Logger name="jdbc.sqltiming" level="info" additivity="false">
<AppenderRef ref="SQLTiming" />
</Logger>
<Root level="error">
<AppenderRef ref="CONSOLE" />
</Root>
</Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)
当我尝试通过 slf4j 获取记录器时
protected static Logger logger = LoggerFactory.getLogger(DbConn.class);
Run Code Online (Sandbox Code Playgroud)
Log4j 创建附加程序失败。我查看了 log4j2 源代码,它尝试创建文件C:\Program Files\eclipse\${web:rootDir}\log\SQLTiming.log(它失败了),所以 log4j 似乎没有处理查找。
我在 Tomcat 7.0.4 中运行该应用程序,并使用http://logging.apache.org/log4j/2.x/manual/lookups.html建议的语法。我尝试使用 $${web:rootDir} (带有 2 个 $ 标记),这导致 $-s 之一被删除,但查找仍然没有成功。事实上,其他查找都没有成功(例如环境变量)。Log4j版本是2.0 beta9。
还有其他人见过类似的事情吗?我错过了什么吗?
该解决方案实际上是按照以下描述的步骤进行的
http://logging.apache.org/log4j/2.x/manual/webapp.html
(我的应用程序在 servlet 2.5 容器中运行)
我只是不知何故错过了这篇文档(顺便说一下,它非常好)
| 归档时间: |
|
| 查看次数: |
3546 次 |
| 最近记录: |