java - log4j.properties 配置

标签 java log4j

我有 2 个类,LogonPolicyServer 和 SCE。我需要从 LogonPolicyServer 到第一个文件 (firstFile.log) 的日志信息,从 SCE 到第一个文件的日志信息,从 SCE 到第二个文件 (secondFile.log) 的日志错误,并将 SCE 类的信息和错误打印到控制台,但是当我尝试这样做,来自 LogonPolicyServer 的信息也会打印到控制台。 我的 log4j.properties:


    log4j.rootLogger=INFO, console

    log4j.appender.console = org.apache.log4j.ConsoleAppender
    log4j.appender.console.target=System.out
    log4j.appender.console.layout = org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern = %d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

    log4j.logger.infoNTS=DEBUG, file
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.file=log/spider.cisco.log
    log4j.appender.file.MaxFileSize=1GB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

    log4j.logger.errorlog=ERROR, errorFile
    log4j.appender.errorFile=org.apache.log4j.RollingFileAppender
    log4j.appender.errorFile.file=log/error.spider.cisco.log
    log4j.appender.errorFile.MaxFileSize=1GB
    log4j.appender.errorFile.MaxBackupIndex=10
    log4j.appender.errorFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.errorFile.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n
    log4j.appender.errorFile.Threshold=ERROR

在 LogonPolicyServer 中我会尝试:


    private static final Logger log = Logger.getLogger("infoNTS");

    //connect logger

然后打印信息:



    log.debug("Record "+i+":"+record.name+" "+res.getString(3)+" "+res.getString(4));

商务部:


    private static final Logger log = Logger.getLogger("infoNTS");
    private static final Logger errorLog = Logger.getLogger("errorlog");

然后打印:


    try{
     api.synchronizePushStart(resultHandler);
     log.info("Start synchronization for SCE:"+sceIP+" started successfully");
    }catch(Exception e){
     errorLog.error("Start synchronization for SCE:"+sceIP+" failed!", e);
    }

怎么了? UPD:最新的 log4j.properties


    log4j.rootLogger=FATAL, console

    log4j.appender.console = org.apache.log4j.ConsoleAppender
    log4j.appender.console.target=System.out
    log4j.appender.console.layout = org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern = %d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

    log4j.logger.infoNTS=DEBUG, file
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.file=log/spider.cisco.log
    log4j.appender.file.MaxFileSize=1GB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

    log4j.logger.errorlog=ERROR, errorFile
    log4j.appender.errorFile=org.apache.log4j.RollingFileAppender
    log4j.appender.errorFile.file=log/error.spider.cisco.log
    log4j.appender.errorFile.MaxFileSize=1GB
    log4j.appender.errorFile.MaxBackupIndex=10
    log4j.appender.errorFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.errorFile.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n
    log4j.appender.errorFile.Threshold=ERROR


UPD2: 这有助于:



    log4j.rootLogger=OFF, fatalFile
    log4j.appender.fatalFile=org.apache.log4j.RollingFileAppender
    log4j.appender.fatalFile.file=log/fatal.log
    log4j.appender.fatalFile.MaxFileSize=10MB
    log4j.appender.fatalFile.MaxBackupIndex=10
    log4j.appender.fatalFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.fatalFile.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

    log4j.logger.infoNTScopy=DEBUG, file
    log4j.logger.infoNTS=DEBUG, file, console
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.file=log/spider.cisco.log
    log4j.appender.file.MaxFileSize=1GB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n


    log4j.logger.errorlog=ERROR, errorFile, console
    log4j.appender.errorFile=org.apache.log4j.RollingFileAppender
    log4j.appender.errorFile.file=log/error.spider.cisco.log
    log4j.appender.errorFile.MaxFileSize=1GB
    log4j.appender.errorFile.MaxBackupIndex=10
    log4j.appender.errorFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.errorFile.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n
    log4j.appender.errorFile.Threshold=ERROR


    log4j.appender.console = org.apache.log4j.ConsoleAppender
    log4j.appender.console.target=System.out
    log4j.appender.console.layout = org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern = %d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

在 LogonPolicyServer 中:


    private static final Logger log = Logger.getLogger("infoNTScopy");

但现在我需要禁用/删除根记录器。

最佳答案

尝试将根记录器指定为 FATAL 并将日志转移到一个虚拟文件中:

    log4j.rootLogger=FATAL, fatalFile
    log4j.appender.fatalFile=org.apache.log4j.RollingFileAppender
    log4j.appender.fatalFile.file=log/fatal.log
    log4j.appender.fatalFile.MaxFileSize=10MB
    log4j.appender.fatalFile.MaxBackupIndex=10
    log4j.appender.fatalFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.fatalFile.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

并在 log4j.logger.infoNTS 中添加 console appender 作为:

log4j.logger.infoNTS=DEBUG, file, nConsole
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=log/spider.cisco.log
log4j.appender.file.MaxFileSize=1GB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

log4j.appender.nConsole= org.apache.log4j.ConsoleAppender
log4j.appender.nConsole.target=System.out
log4j.appender.nConsole.layout = org.apache.log4j.PatternLayout
log4j.appender.nConsole.layout.ConversionPattern = %d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

关于java - log4j.properties 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13339294/

相关文章:

java - DTO 和接口(interface)

java - 如何定义 spring-boot 中的依赖注入(inject)?

java - log4j 记录器覆盖到 jxl.log 文件

maven - 如何找到 Log4j 的深层用法

eclipse - 无法禁用 Spark eclipse scala 日志

java - 如何在没有 IDE 帮助的情况下导入 Maven 2 项目

Windows 10 上的 Java 安装程序问题

java.sql.SQLException : Invalid or Stale Connection found in the Connection Cache 异常

java - 在 log4j 中,在记录之前检查 isDebugEnabled 是否会提高性能?

java - 如何以编程方式正确配置 log4j2?