• 第三百零四节 Log4j教程 - Log4j配置


    Log4j教程 - Log4j配置

    我们可以通过设置Log Level,定义Appender和在配置文件中指定Layout对象来配置log4j。

    log4j.properties 文件是一个log4j配置文件,它保留键 - 值对中的属性。

    默认情况下, LogManager 在CLASSPATH中查找名为log4j.properties的文件。

    log4j.properties语法:

    以下代码显示了appender X的log4j.properties文件的语法:

    # Define the root logger with appender X
    log4j.rootLogger = DEBUG, X
    
    # Set the appender named X to be a File appender
    log4j.appender.X=org.apache.log4j.FileAppender
    
    # Define the layout for X appender
    log4j.appender.X.layout=org.apache.log4j.PatternLayout
    log4j.appender.X.layout.conversionPattern=%m%n
    

    log4j支持UNIX风格的变量替换,如${variableName}。

    以下示例显示如何创建log4j.properties文件。

    它将根记录器的级别设置为DEBUG,并将名为FILE的附加器附加到它。

    追加器FILE定义为org.apache.log4j.FileAppender,并写入位于日志目录中的名为“log.out”的文件。

    定义的布局模式为%m%n,这意味着打印的日志消息后面将跟随换行符

    # Define the root logger with appender file
    log4j.rootLogger = DEBUG, FILE
    
    # Define the file appender
    log4j.appender.FILE=org.apache.log4j.FileAppender
    log4j.appender.FILE.File=${log}/log.out
    
    # Define the layout for file appender
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.conversionPattern=%m%n
    

    日志级别

    我们使用DEBUG和两个appenders。所有可能的选项是:

    • 跟踪

    • 调试

    • 信息

    • 警告

    • 错误

    • 致命

    • 所有

    这些级别将在Log4j日志记录级别中解释。

    追加者

    Apache log4j提供了用于将日志消息打印到不同目标(如控制台,文件,套接字,NT事件日志等)的Appender对象。

    每个Appender对象都具有与其关联的不同属性,这些属性指示该对象的行为。

    属性描述
    layoutAppender使用布局对象和转换模式来格式化日志记录信息。
    target目标可以是控制台,文件或其他项目,具体取决于附加程序。
    level级别过滤日志消息。
    thresholdAppender可以具有阈值级别,并忽略具有低于阈值级别的级别的任何日志记录消息。
    filterFilter对象决定日志记录请求是由特定Appender处理还是忽略。

    我们可以使用以下方法在配置文件中添加一个Appender对象到Logger:

    log4j.logger.[logger-name]=level, appender1,appender..n
    

    我们可以用XML格式编写相同的配置。

    
       
       
    
    
    

    要添加Appender对象,请使用以下方法:

    public void addAppender(Appender appender);
    

    addAppender()方法将Appender添加到Logger对象。我们可以在逗号分隔的列表中添加许多Appender对象到记录器。

    所有可能的追加者选项是:

    • AppenderSkeleton

    • AsyncAppender

    • ConsoleAppender

    • DailyRollingFileAppender

    • ExternallyRolledFileAppender

    • FileAppender

    • JDBCAppender

    • JMSAppender

    • LF5Appender

    • NTEventLogAppender

    • NullAppender

    • RollingFileAppender

    • SMTPAppender

    • SocketAppender

    • SocketHubAppender

    • SyslogAppender

    • TelnetAppender

    • WriterAppender

    日志布局

    我们可以使用下面的布局列表。

    • DateLayout
    • HTMLLayout生成HTML格式的消息。
    • PatternLayout
    • SimpleLayout
    • XMLLayout生成XML格式的消息

    输出到控制台

    以下log4j.properties显示如何将信息记录到控制台。

    # Root logger option
    log4j.rootLogger=INFO, stdout
    
    # Direct log messages to stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    

    以下xml代码将重写上面列出的配置。

    
    
    
      
          
        
          
      
      
        
        
      
    
    

    输出到文件

    以下 log4j.properties 显示如何将信息记录到文件。

    # Root logger option
    log4j.rootLogger=INFO, file
    
    # Direct log messages to a log file
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    
    #Redirect to Tomcat logs folder
    #log4j.appender.file.File=${catalina.home}/logs/logging.log
    
    log4j.appender.file.File=C:\\my.log
    log4j.appender.file.MaxFileSize=10MB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    

    以下xml代码重写上面列出的配置。

    
    
    
     
      
         
         
         
         
         
         
        
         
      
     
      
        
        
      
     
    
    

    输出到控制台和文件

    以下 log4j.properties 显示如何将信息记录到文件和控制台。

    # Root logger option
    log4j.rootLogger=INFO, file, stdout
     
    # Direct log messages to a log file
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=C:\\my.log
    log4j.appender.file.MaxFileSize=10MB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
     
    # Direct log messages to stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    

    以下xml代码将重写上面列出的配置。

    
    
    
     
      
          
        
          
      
     
      
          
          
          
          
          
        
          
      
     
      
        
        
        
      
     
    
                    
  • 相关阅读:
    解决ROS的cv_bridge与自己安装的opencv的版本冲突的问题
    Linux学习笔记—系统目录结构
    Go并发编程之一
    【JAVASE】日期时间类
    行测-图形推理-7-相异图形类
    LVS负载均衡集群和LVS负载均衡—DR模式
    Linux入门-第1天_linux介绍
    Ubuntu离线安装Python第三方库
    Python 将数字字符串数组转为数字数组的最快方法
    SQL动态分区、用户管理以及流程控制
  • 原文地址:https://blog.csdn.net/2301_78772942/article/details/143390654