• Java——Log4j


      log4j 是 Apache 的一开源项目,通过使用 log4j,程序员可以控制日志的输出级别,以及日志信息输送的目的地,包括控制台。文件等,还可以控制每一条日志的输出格式。

    下面配置log4j 文件:

    ### 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{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    ### direct messages to file mylog.log ###
    log4j.appender.file=org.apache.log4j.FileAppender
    log4j.appender.file.File=c:/log/log.txt
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    
    ### set log levels - for more verbose logging change 'info' to 'debug' ###
    
    log4j.rootLogger=info, stdout ,file 

     1.输出级别(标灰的地方)

      log4j.rootLogger= error, stdout ,file 

    输出优先级别 fatal > error > warn > info > debug
      日志记录器(Logger) 将只输出那些级别高于或等于它的信息。例如,级别为 error,将只输出 fatal 、error 级别的日志信息。

    2.日志输出目的地 Appender (标灰的地方)
      
      log4j.rootLogger=error, stdout ,file
      其中,stdout、file 指的是日志输出的目的地的名字。
      log4j允许记录日志到多个输出目的地,一个输出目的地被称为一个Appender。log4j 中常用的 Appender 有以下两种
        》ConsoleAppender : 输出日志事件到控制台。通过 Targer 属性配置输出到 System.out 或 System.err,默认的目标是 System.out。  
        》FileAppenter : 输出日志事件到一个文件。通过 File 属性配置文件的路径及名称。
        在上面的试例当中有两个 Appender,第一个命名为 stdout,使用了 ConsoleAppender,通过配置 Target 属性,把日志信息写到控制台 System.out;第二个 Appender 命名为 file,使用了 FileAppender,通过配置File属性,把日志信息写到指定文件log.txt中。

    3.日志布局类型 Layout

      Appender 必须使用一个与之相关联的布局类型 Layout,用来指定它的输出样式。log4j 中最常用的 Layout 有以下三种 。

      》HTMLLayout:格式化日志输出为 HTML 表格。

      》SimpleLayout :以一种非常简单的方式格式化日志输出,它输出级别 Level,然后跟着一个破折号“——”,最后是日志消息。

      》patternLayout:根据指定的转换模式格式化日志输出,从而支持丰富多样的输出格式。需要配置 layout。ConversionPattern属性,若没有配置该属性,则使用默认的转换模式。

    4.转换模式 Conversionpattern 

    对于 PatternLayout,需要配置 layout.ConversionPattern 属性,常用的配置参数及含义如下:

      》%d :用来设置输出日志的日期和时间,默认格式为ISO8601。也可以在其后制定格式,比如 %d{yyyy-MM-dd HH:mm:ss }  

      》%m:用来输出代码中指定的信息。

      》%n:用来输出一个回车换行符。

      》%l:用来输出日志事件的反生位置,包括类名、发生的线程,以及在代码中的行数。

      》%p:用来输出优先级,即 debug 、info 、warn 、 error 、fatal 等。

      》%F:用来输出文件名。

      》%M:用来输出方法名。

    一个简单小例子:

    首先导入jar 包:

      

    import java.util.Scanner;
    import org.apache.log4j.Logger;
    
    public class MyTest_log4j {
    
        static Logger logger=Logger.getLogger(MyTest_log4j.class);
        public static void main(String[] args) {
            
            Scanner input = new Scanner(System.in);
            System.out.println("请输入除数:");
            int num1=input.nextInt();
            System.out.println("请输入被除数:");
            int num2=input.nextInt();
            try {
                System.out.println(String.format("%d /%d =%d", num1,num2,num1/num2));
                
            } catch (Exception e) {
                logger.error("除数不能为0");
            }
        }
    }
  • 相关阅读:
    [leetcode-79-Word Search]
    [leetcode-563-Binary Tree Tilt]
    [leetcode-561-Array Partition I]
    [leetcode-556-Next Greater Element III]
    [leetcode-554-Brick Wall]
    [leetcode-557-Reverse Words in a String III]
    [leetcode-532-K-diff Pairs in an Array]
    dev 官网
    DataTable 设置primarykey 后进行 Merge操作
    对称矩阵 一个简单的小把戏
  • 原文地址:https://www.cnblogs.com/szj-ang/p/7365719.html
Copyright © 2020-2023  润新知