开源日志记录工具log4j的使用

主讲人:王少华  QQ群号:483773664

学习目标

掌握Log4J在java项目中的应用

一、日志分类及log4j介绍

(一)日志及分类

1 日志

  • 主要用来记录系统运行中一些重要操作信息

  • 便于监视系统运行情况,帮助用户提前发现和避开可能出现的问题,或者出现问题后根据日志找到原因

2、分类

  • SQL日志:记录系统执行的SQL语句

  • 异常日志:记录系统运行中发生的异常事件

  • 业务日志:记录系统运行过程。如用户登录、操作记录

(二)Log4j介绍

Log4j是Apache是一个开源项目。

控制日志的输出级别

控制日志信息输送的目的地是控制台、文件等

控制每一条日志的输出格式

官网:http://logging.apache.org/log4j/1.2/

这里我们使用的版本是:1.2.17

二、使用Log4j记录日志

(一)、在项目中加入log4j的JAR文件

(二)、创建log4j.properties文件

(三)、配置日志信息

1
2
3
4
5
6
7
8
9
10
11
12
13
### 设置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
 
### 把日志信息输出到文件:wangsh.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=wangsh.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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Test {
    private static Logger logger = Logger.getLogger(Test.class.getName());
    public static void main(String[] args) {
        try {
            Scanner in = new Scanner(System.in);
            System.out.print("请输入被除数:");
            int num1 = in.nextInt();
            logger.debug("输入被除数:" + num1);
            System.out.print("请输入除数:");
            int num2 = in.nextInt();
            logger.debug("输入除数:" + num2);
            System.out.println(String.format("%d / %d = %d", num1, num2, num1
                    / num2));
            logger.debug("输出运算结果:"
                    + String.format("%d / %d = %d", num1, num2, num1 / num2));
        } catch (InputMismatchException e) {
            logger.error("被除数和除数必须是整数", e);
        } catch (ArithmeticException e) {
            logger.error(e.getMessage());
        } catch (Exception e) {
            logger.error(e.getMessage());
        } finally {
            System.out.println("欢迎使用本程序!");
        }
    }
}