20、Log4J日志操作

学习目标:

1、深刻认识日志的重要性

2、了解Java的日志Log4J的使用

3、能根据业务需要定义和使用日志

学习过程:

一、Log4j简介

1、什么是Log4j

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

2、Log4j的5个级别

第一级别: DEBUG Level。指出细粒度信息事件对调试应用程序是非常有帮助的。

第二级别: INFO  level。表明消息在粗粒度级别上突出强调应用程序的运行过程。 

第三级别: WARN level。表明会出现潜在错误的情形。

第四级别: ERROR level。指出虽然发生错误事件,但仍然不影响系统的继续运行。

第五级别: FATAL level。指出每个严重的错误事件将会导致应用程序的退出。

这些级别是由高低之分的,最低级别是DEBUG级别,最高级别是FATAL level。如果当前的日志信息是低级别的,那就在属性文件中当前级别和比当前级别高的都会触发。

二、使用Log4j

Log4j的使用非常简单,按照以下几个步骤即可:

1、导包

我们需要导入commons-logging.jar和log4j-1.2.8.jar,在项目中新建lib,把这两个jar包复制进去,然后选择这两个点击add to Build Path即可。

2、建立总配置文件。

在src下面建立一个名字必须为log4j.properties的属性文件。属性文件内容如下:

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

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

#Log4J配置文件实现了输出到控制台、文件、按日期生成文件、回滚文件、数据库等功能。仅供参考。

log4j.rootLogger=DEBUG,CONSOLE,FILE,DLOGFILE,ROLLING_FILE

log4j.addivity.org.apache=true

 

#应用于控制台

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.Threshold=DEBUG

log4j.appender.CONSOLE.Target=System.out

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyyMMdd-HH:mm:ss} %t %c %m%n

 

#应用于文件

log4j.appender.FILE=org.apache.log4j.FileAppender

log4j.appender.FILE.File=d\:\\file.log

log4j.appender.FILE.Threshold=DEBUG

log4j.appender.FILE.Append=true

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout

log4j.appender.FILE.layout.ConversionPattern=%d{yyyyMMdd-HH:mm:ss} %t %c %m%n

 

#应用于按日期生成文件   像日记一样,每天一个文件

log4j.appender.DLOGFILE=org.apache.log4j.DailyRollingFileAppender

log4j.appender.DLOGFILE.File=d\:\\dailyRolling.log

log4j.appender.DLOGFILE.Threshold=DEBUG

log4j.appender.DLOGFILE.DatePattern='.'yyyy-MM-dd

log4j.appender.DLOGFILE.layout=org.apache.log4j.PatternLayout

log4j.appender.DLOGFILE.layout.ConversionPattern=%d{yyyyMMdd-HH:mm:ss} %t %c %m%n

 

#应用于文件回滚

log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender

log4j.appender.ROLLING_FILE.Threshold=DEBUG

log4j.appender.ROLLING_FILE.File=d\:\\rolling.log

log4j.appender.ROLLING_FILE.Append=true

log4j.appender.ROLLING_FILE.MaxFileSize=1KB

log4j.appender.ROLLING_FILE.MaxBackupIndex=4

log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout

log4j.appender.ROLLING_FILE.layout.ConversionPattern=%d{yyyyMMdd-HH:mm:ss} %t %c %m%n

 

# 数据库输出

#log4j.appender.MYSQL_LOG=org.apache.log4j.jdbc.JDBCAppender

#log4j.appender.MYSQL_LOG.driver=com.mysql.jdbc.Driver

#log4j.appender.MYSQL_LOG.URL=jdbc:mysql://127.0.0.1:3306/txl

#log4j.appender.MYSQL_LOG.Threshold=ERROR

#log4j.appender.MYSQL_LOG.user=root

#log4j.appender.MYSQL_LOG.password=

#log4j.appender.MYSQL_LOG.sql=insert into log_monitor

#(level,category,thread,time,location,note) 

#values('%p','%c','%t','%d{yyyy-MM-dd HH:mm:ss:SSS}','%l','%m')

#log4j.appender.MYSQL_LOG.layout=org.apache.log4j.PatternLayout

日志信息可以输出到控制台、文件和数据库中,数据库我们暂时没有学到,所以先注释了,输出到文件在上面的示例中使用了三种方式,分别是:普通文件方式、按日期生成文件、文件回滚方式。属性文件的属性名称说明如下:

log4j.appender.CONSOLE.Threshold  是定义日志级别的。

log4j.appender.FILE.layout

log4j.appender.FILE.layout.ConversionPattern  定义日志信息的格式的。

其他的属性名称信息大家可以自己阅读代码。

3、在程序中应用

我们只需要使用Log对象即可

//通过日志工厂类获得日志对象

   protected static final Log log = LogFactory.getLog(Login.class);

我们模拟一下用户登录后记录用户的信息,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

public class Login {

 

    protected static final Log log = LogFactory.getLog(Login.class);

    public void login(String name, String password) {

 

        // 记录日志 记录在文本

        log.debug(name+"尝试登录了。");//调式级别

        System.out.println(name+"尝试登录了。");

        if(name.equals("admin")&&password.equals("admin")){

            System.out.println("登录成功了。");

            log.info(name+"登录成功了。");//信息级别

        }else{

            log.error(name+"登录失败了。");//错误级别

        }

    }

     

    public static void main(String[] args) {

        Login login=new Login();

        login.login("admin""asdfasdf");

         

    }

}

4、测试。

下面你可以多运行一下这段代码,然后在控制台和D盘中看看日志文件的输出效果如何。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值