带SimpleLogger的SLF4J:是否可以登录文件AND System.out?

sna*_*ark 5 java logging slf4j

我正在使用SimpleLogger绑定SLF4J 1.7.5.根据文档,我可以使用simplelogger.properties文件中的org.slf4j.simpleLogger.logFile属性来指定日志文件OR System.out OR System.err.

但是我想将日志消息发送到BOTH System.out和日志文件.有谁知道如何使用SimpleLogger实现这一目标?(我正在使用Windows,所以不能使用tail -f只是在控制台窗口中跟踪日志文件;我也不想在Windows中使用模拟'tail -f'的第三方实用程序.)

DwB*_*DwB 9

简答

你不能用SimipleLogger做到这一点.

更多答案

放弃SimpleLogger并继续前进.你有选择:

  1. 而不是使用slf4j-simple-1.xxjar获取logback(logback-classic.jar和logback-core.jar).使用logback,您可以定义两个appender; 一个用于文件输出,一个用于控制台(也称为System.out)输出.

  2. 而不是使用slf4j-simple.1.xxjar获取xxx(替换slf4j支持的任何日志记录系统)和blah blah blah(与1 obove相同).

  3. SLF4j是开源的; 派生自己的记录器(让我们称之为TeeLogger),记录到System.out和一个文件.

  4. 创建一个位于SLF4j前面的日志类(在您的应用程序中).它需要一个Logger和一个消息,然后让它将消息写入System.out和Logger.

  5. 我还没有的东西.

这是上面#4的(超级简单化)示例:

import org.slf4j.Logger;

public class LoggyLoo
{
    public static void logZoreInfo(
        final Logger logger,
        final String message)
    {
        System.out.println(message);
        logger.info(message);
    }
}
Run Code Online (Sandbox Code Playgroud)