изменить скорость регистрации на консоли - PullRequest
8 голосов
/ 19 января 2011

Я пытаюсь интегрировать скорость с существующей конфигурацией 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>

И код Java:

Velocity.setProperty( "runtime.log.logsystem.class", "org.apache.velocity.runtime.log.Log4JLogChute" );

Кто-нибудь знает, как заставить это работать должным образом?

1010 * ТИА *

Ответы [ 3 ]

14 голосов
/ 19 января 2011

Я заставил его работать, добавив следующее свойство:

Velocity.setProperty( "runtime.log.logsystem.log4j.logger", "foo" );

И изменив это:

<logger
    name="runtime.log.logsystem.log4j.category">
    <level
        value="info" />
    <appender-ref
        ref="consoleAppender" />
</logger>

на следующее:

<logger
    name="foo">
    <level
        value="info" />
    <appender-ref
        ref="consoleAppender" />
</logger>

Надеюсь, этопомогает кому-то еще.

РЕДАКТИРОВАНИЕ # 1:

Наконец, это можно сделать, добавив следующее свойство:

Velocity.setProperty( "runtime.log.logsystem.log4j.logger", "root" );

или если используется speed.properties

runtime.log.logsystem.log4j.logger = root

Iзатем смог изменить мой файл log4j.xml обратно на то, что у меня было, это фактически изменило скорость от регистрации до скорости по умолчанию, по которой мой корневой регистратор был сконфигурирован - одна строка ... перейти на рисунок:)

1 голос
/ 17 октября 2013

Пришлось нырнуть в отладке, чтобы сделать эту работу с пружиной.

Предостережение должно установить overrideLogging на false. Это не позволяет пружине перекрывать регистратор скорости с org.springframework.ui.velocity.CommonsLoggingLogSystem.

<bean id="velocity" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
    <property name="overrideLogging" value="false"/>
    <property name="velocityProperties">
        <props>
            <prop key="runtime.log.logsystem.class">org.apache.velocity.runtime.log.Log4JLogChute</prop>
            <prop key="runtime.log.logsystem.log4j.logger">velocity</prop>
            <!--...-->
    </property>
</bean>
0 голосов
/ 19 января 2011

Вы уверены, что ваш log4j.xml - это файл конфигурации регистрации, выбранный log4j?Возможно, что другой JAR на пути к классам включает в себя собственный файл конфигурации log4j.

Запустите ваше приложение с помощью -Dlog4j.debug, чтобы log4j выдавал информацию о том, из какого файла он загружает конфигурацию, для проверки предполагаемогофайл используется.

...