【问题标题】:log4j to logback(migration)log4j 到 logback(迁移)
【发布时间】:2012-04-10 11:27:18
【问题描述】:

我们在当前项目中使用 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 和 logback jar 中我在类路径上设置了 logback jar 但我没有得到任何我们使用 WLS10.3.0 的日志有什么我需要做配置

【问题讨论】:

  • 您的log4j.properties 和您的logback.xml 中有什么?
  • log4j.logger.com.webex.iservices.accinquiry=调试,R,IntegratedServicesLog,标准输出,邮件 log4j.properties LOGBACK.XML:-

标签: log4j logging weblogic-10.x slf4j logback


【解决方案1】:

Logback 应该与 log4j 一起使用

logback-classic 模块可以同化为 log4j 的显着改进版本。此外,logback-classic 原生实现了 SLF4J API,因此您可以轻松地在 logback 和其他日志框架(例如 log4j 或 java.util.logging (JUL))之间来回切换。 logback website

将 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

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2019-02-05
    相关资源
    最近更新 更多