log4j для выхода из системы (миграция) - PullRequest
4 голосов
/ 27 марта 2012

Мы используем log4j + commons-logging в наших текущих проектах. Теперь мы переходим от log4j к Logback, поэтому мы можем просто использовать замену log4j.properties на logback.xml или нам нужно конвертировать log4j в SLF4J?

согласно предложению я сохранил код тот же, у меня есть код, подобный этому

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.Priority;

public class LoggerUtil
{
    // logger
    static Logger logger;

    // applications

    public static String APP_AccInqSERVICE = "AccInqApp";

приведенный выше код является частью LoggerUtils.java и входит в commonutils. теперь есть модуль AccInqWeb, где для входа в систему используется LoggerUtils

 LoggerUtil.info(LoggerUtil.APP_ACCT_INQ, AccountInqService.class,
                "searchAccountSnapshot", "method starts....");

Я сохранил код LoggerUtils.java как есть и включил log4j-over-slf4.jar и удалил log4j.jar, теперь он отлично скомпилирован, и я развернул модуль commonutils на сервере, и добавил add -Dlogback.configurationFile = C: \ u001 \ isuser \ tesbea \ user_projects \ domains \ iservices‌ 10 \ resources \ logback.xml в setDomainEnv.cmd и jar logback. Я устанавливаю jar logback на classpath, но я не получаю никаких журналов, мы используем WLS10.3.0. нужно сделать с конфигурацией

1 Ответ

1 голос
/ 26 августа 2015

Logback должен работать с log4j

Классический модуль logback может быть ассимилирован со значительно улучшенной версией log4j.Более того, logback-classic изначально реализует API SLF4J, так что вы можете легко переключаться между logback и другими средами ведения журналов, такими как log4j или java.util.logging (JUL). веб-сайт logback

Добавьте файл jar в свой проект или POM

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.3</version>
</dependency>

Чтобы переключиться на logback, первым делом вы должны добавить logback.xml в вашу папку ресурсов.Это файл, который выглядит следующим образом

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <property name="USER_HOME" value="C:\\logs\\analyzer" />

    <appender name="FILE-THREAD" class="ch.qos.logback.classic.sift.SiftingAppender">

        <!-- This is MDC value -->
        <!-- We will assign a value to 'logFileName' via Java code -->
        <discriminator>
            <key>logFileName</key>
            <defaultValue>head0</defaultValue>
        </discriminator>

        <sift>

          <!-- A standard RollingFileAppender, the log file is based on 'logFileName' at runtime  -->
          <appender name="FILE-${logFileName}"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${USER_HOME}/${logFileName}.log</file>

            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <Pattern>
                    %d{yyyy-MM-dd HH:mm:ss} %mdc [%thread] %level %logger{35} - %msg%n
                </Pattern>
            </encoder>

            <rollingPolicy
                class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <FileNamePattern>${USER_HOME}/${logFileName}.%i.log.zip
                </FileNamePattern>
                <MinIndex>1</MinIndex>
                <MaxIndex>10</MaxIndex>
            </rollingPolicy>

            <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <MaxFileSize>10MB</MaxFileSize>
            </triggeringPolicy>

          </appender>

        </sift>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <logger name="com.yourproject.analyzer.core" level="debug"
        additivity="false">
        <appender-ref ref="FILE-THREAD" />
        <appender-ref ref="STDOUT" />
    </logger>

    <root level="error">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

Затем вам нужно изменить каталог ведения журнала в вашем web.xml с log4j на logback

<context-param>
  <param-name>loggingName</param-name>
  <param-value>logbackdirectory</param-value>
<context-param>

logback manual

...