• 使用log4j将日志输送到控制台、文件或数据库中


    转:

    使用log4j将日志输送到控制台、文件或数据库中

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/xl_1803/article/details/82469876

     

    1、log4j简述

    log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),Apache一个开源项目。

    Log4j是高度可配置的,并可通过在运行时的外部文件配置。它根据记录的优先级别,并提供机制,以指示记录信息到许多的目的地,诸如:数据库,文件,控制台,UNIX系统日志等。 

    日志级别有:

    • ALL              打印所有信息
    • DEBUG        打印调试信息
    • ERROR        打印错误信息
    • FATAL  指定非常严重的错误事件,这可能导致应用程序中止
    • INFO    指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
    • OFF    这是最高等级,为了关闭日志记录
    • TRACE    指定细粒度比DEBUG更低的信息事件
    • WARN    指定具有潜在危害的情况

    一般常用的级别是DEBUG级别

    使用log4j需要在项目中导入log4j的jar包,点击这里下载它的jar包。

    将jar包导入项目之后,在项目的classpath路径下新建名为log4j.properties的配置文件,用于配置log4j。

    下面就一一介绍如何使用log4j将日志输送到不同目的地。

    1、输送到普通txt文件

    1. #表示该文件在D盘的log目录下
    2. log=D:/log
    3. # 根日志记录器(logger)的级别定义为DEBUG并连接附加器命名为FILE
    4. log4j.rootLogger = DEBUG, FILE
    5.  
    6. # 附加器(appender)File是定义为org.apache.log4j.FileAppender并写入到一个名为“log.txt”的文件中
    7. log4j.appender.FILE=org.apache.log4j.FileAppender
    8. log4j.appender.FILE.File=${log}/log.txt
    9.  
    10. # 定义的布局模式是%m%n,这意味着每打印日志消息之后,将加上一个换行符
    11. log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    12. log4j.appender.FILE.layout.conversionPattern=%m%n

    2、输送到格式化的html文件

    1. #表示该文件在D盘的log目录下
    2. log=D:/log
    3. log4j.rootLogger = DEBUG, FILE
    4.  
    5. # Define the file appender
    6. # 附加器(appender)File是定义为org.apache.log4j.FileAppender并写入到一个名为“log.html”的文件中
    7. log4j.appender.FILE=org.apache.log4j.FileAppender
    8. #生成html文件
    9. log4j.appender.FILE.File=${log}/log.html
    10.  
    11. log4j.appender.FILE.layout=org.apache.log4j.HTMLLayout
    12. log4j.appender.FILE.layout.Title=HTML Layout Example
    13. log4j.appender.FILE.layout.LocationInfo=true

    3、输送到控制台

    1. #定义LOG输出级别、输出到控制台、文件
    2. log4j.rootLogger = DEBUG,STDOUT
    3.  
    4. # 定义控制台 STDOUT appender
    5. log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
    6. log4j.appender.STDOUT.Target=System.out
    7.  
    8. #定义日志输出目的地为控制台
    9. log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
    10. log4j.appender.STDOUT.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%m%n

    4、输送到数据库

    这里以mysql数据库为例,将日志输送到数据库,实质就是讲日志存储到数据表中,为此,我们先建立一张用于存储日志的表

    1. CREATE TABLE LOGS
    2. (USER_ID VARCHAR(20),
    3. DATED DATETIME,
    4. LOGGER VARCHAR(50),
    5. LEVEL VARCHAR(10),
    6. MESSAGE VARCHAR(1000)
    7. );

     然后,再配置log4j.properties

    1. # Define the root logger with appender file
    2. log4j.rootLogger = DEBUG, DB
    3.  
    4. # Define the DB appender
    5. log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
    6. #定义数据库url
    7. log4j.appender.DB.URL=jdbc:mysql://127.0.0.1:3306/formybatis?characterEncoding=UTF-8
    8. #定义数据库驱动
    9. log4j.appender.DB.driver=com.mysql.jdbc.Driver
    10.  
    11. #定义用户名和密码
    12. log4j.appender.DB.user=root
    13. log4j.appender.DB.password=ok
    14.  
    15. # 设置存储到log表的insert语句
    16. log4j.appender.DB.sql=INSERT INTO LOGS(user_id,dated,logger,level,message) VALUES("%x","%d{yyyy-MM-dd HH:mm:ss}","%C","%p","%m")
    17.  
    18. # Define the layout for file appender
    19. log4j.appender.DB.layout=org.apache.log4j.PatternLayout

    2、大致了解一下log4j2

    log4j2是重新架构的一款日志组件,他抛弃了之前log4j的不足,以及吸取了优秀的logback的设计重新推出的一款新组件。log4j2的社区活跃很频繁而且更新的也很快。

    log4j是通过一个.properties的文件作为主配置文件的,而现在的log4j 2则已经弃用了这种方式,采用的是.xml,.json或者.jsn这种方式来做,可能这也是技术发展的一个必然性,毕竟properties文件的可阅读性真的是有点差。

  • 相关阅读:
    数据库连接池实现
    Linux array_vpnc
    MVC小结
    Linux和Windows下 classpath 的差异
    无法删除DLL文件解决方法(转)
    电信工程管理方法
    常用设计思想
    MAX262使用说明
    基于FPGA的FIR滤波器(草稿)
    数字存储示波器(草稿)
  • 原文地址:https://www.cnblogs.com/libin6505/p/11881654.html
Copyright © 2020-2023  润新知