从log4j切换到logback

Omu*_*Omu 5 java log4j logback

我有这个代码与log4j,我不使用任何类型的配置文件

static Logger logger = Logger.getLogger(Application.class);

...

Appender ap = new NTEventLogAppender();

SimpleLayout layout = new SimpleLayout();
Appender fp = null;
try {
    fp = new FileAppender(layout, "output.txt");
} catch (IOException e) {           
    e.printStackTrace();
}

logger.addAppender(ap);
logger.addAppender(fp);

logger.info("info");
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何使用logback做同样的事情

Séb*_*ien 6

为什么不使用配置文件?是因为您在运行时更改了日志记录配置?

除非您有非常具体的理由这样做,否则使用配置文件配置日志框架对我来说似乎更合理.

如果您使用配置文件,您的配置可能是这样的:

<configuration>
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>output.txt</file>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%level - %msg%n</Pattern>
    </layout>
  </appender>

  <root level="debug">
    <appender-ref ref="FILE" />
  </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

对于NTEventLogAppender,据我所知,它不存在用于logback.但是将一个appender从log4j移植到logback是一个非常简单的任务,所以你应该能够创建自己的appender.

如果需要以编程方式配置appender,请检查logback文档和示例:您可能会在那里找到一些想法.

希望这可以帮助...