jav*_*y79 8 java logging velocity
我正在尝试将速度与现有的log4j.xml配置集成,并且正在进行攻击.我似乎无法使用控制台appender - 无论我尝试了什么,它一直发送到velocity.log
.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender
name="consoleAppender"
class="org.apache.log4j.ConsoleAppender">
<layout
class="org.apache.log4j.PatternLayout">
<param
name="ConversionPattern"
value="%d | %5p | %m%n" />
</layout>
</appender>
<logger
name="runtime.log.logsystem.log4j.category">
<level
value="info" />
<appender-ref
ref="consoleAppender" />
</logger>
<root>
<priority
value="info" />
<appender-ref
ref="consoleAppender" />
</root>
</log4j:configuration>
Run Code Online (Sandbox Code Playgroud)
和java代码:
Velocity.setProperty( "runtime.log.logsystem.class", "org.apache.velocity.runtime.log.Log4JLogChute" );
Run Code Online (Sandbox Code Playgroud)
有谁知道如何正常工作?
TIA
jav*_*y79 14
我通过添加以下属性来实现它:
Velocity.setProperty( "runtime.log.logsystem.log4j.logger", "foo" );
Run Code Online (Sandbox Code Playgroud)
改变这个:
<logger
name="runtime.log.logsystem.log4j.category">
<level
value="info" />
<appender-ref
ref="consoleAppender" />
</logger>
Run Code Online (Sandbox Code Playgroud)
对此:
<logger
name="foo">
<level
value="info" />
<appender-ref
ref="consoleAppender" />
</logger>
Run Code Online (Sandbox Code Playgroud)
希望这有助于其他人.
最后,可以通过添加以下属性来完成:
Velocity.setProperty( "runtime.log.logsystem.log4j.logger", "root" );
Run Code Online (Sandbox Code Playgroud)
或者如果使用velocity.properties
runtime.log.logsystem.log4j.logger = root
Run Code Online (Sandbox Code Playgroud)
然后我能够将我的log4j.xml文件更改回原来的样式,这有效地将记录的速度更改为默认的velocity.log到我的根记录器被配置的地方 - 一行......去图:)