zoukankan      html  css  js  c++  java
  • 开源日志记录工具log4j

    日志

      

    使用log4j日志记录步骤

      

     1、在项目中加入log4j的JAR文件

      

      

     2、创建log4j.properties文件

      

      

     3、配置日志信息

      解决编写乱码

       

       

    # 设置Logger输出级别和输出目的地 #
    log4j.rootLogger=debug,stdout,logfile
    
    # 把日志信息输出到控制台 #
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.err
    log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
    
    # 把日志信息输出到文件中 #
    log4j.appender.logfile=org.apache.log4j.FileAppender
    log4j.appender.logfile.File=jbit.log
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%l %F %p %m%n
    log4j.properties

     4、使用log4j记录日志信息

    import java.util.InputMismatchException;
    import java.util.Scanner;
    
    import org.apache.log4j.Logger;
    
    public class Test {
        private static Logger logger = Logger.getLogger(Test.class.getName());
    
        public static void main(String[] args) {
            try {
                Scanner input = new Scanner(System.in);
                System.out.print("请输入第一个整数:");
                int num1 = input.nextInt();
                logger.debug("输入的第一个整数" + num1);
                System.out.print("请输入第二个整数:");
                int num2 = input.nextInt();
                logger.debug("输入的第二个整数" + num2);
                int jq = num1 / num2;
                String str = String.format("%d%d=%d", num1, num2, num1 / num2);
                logger.debug("输出结果:" + str);
                System.out.println(jq);
            } catch (InputMismatchException e) {
                logger.error(e.getMessage() + "输入不匹配");
            } catch (Exception e) {
                logger.error(e.getMessage() + "除数不能为0");
                e.printStackTrace();
            }
        }
    }
    Test 

    log4j配置文件详解

     1.    日志级别

      trace:追踪,就是程序推进一下,可以写个trace输出

      debug:调试,一般作为最低级别,trace基本不用。

      info:输出重要的信息,使用较多

      warn:警告,有些信息不是错误信息,但也要给程序员一些提示。

      error:错误信息。用的也很多。

      fatal:致命错误。级别较高,这种级别不用调试了,重写吧……

      机制:如果一条日志信息的级别大于等于配置文件的级别,就记录。

     2.    输出源

      CONSOLE(输出到控制台)、FILE(输出到文件)等。

     3.    布局方式

      SimpleLayout:以简单的形式显示

      HTMLLayout:以HTML表格显示

      PatternLayout:自定义形式显示

      在Log4J2中基本采用PatternLayout自定义日志布局。

      自定义格式:

        %t:线程名称

        %p:日志级别

        %c:日志消息所在类名

        %m:消息内容

        %M:输出执行方法

        %d:发生时间,%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2011-10-18 22:10:28,921

        %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。

        %L:代码中的行数

        %n:换行

  • 相关阅读:
    如何吸引小白用户爱上你的游戏?
    产品经理应聘之感受漫谈
    罗永浩Vs王自如:浮躁的世界该如何降温?!
    从锤子手机谈产品的逼格
    博客园与51CTO博客之产品用户体验分析
    web网站 Vs 移动App 谁更能打动你?之 产品经理篇
    不要只甘于做一个程序员
    我的程序员工作经历(二) 之 谈合作
    OpenCV 之 神经网络 (一)
    Qt 之 QtConcurrent
  • 原文地址:https://www.cnblogs.com/xhddbky/p/9147620.html
Copyright © 2011-2022 走看看