• log4j---------学习总结(一)


    一.log4j框架

    • log4j可靠的,快速的,可扩展的(灵活的)日志框架 
    • log4j具有高可配置性,可以通过外部配置文件来控制 
    • log4j可以根据日志不同级别来过滤日志, 
    • log4j可以将日志记录直接写到控制台,文件,数据库,UNIX系统日志
    • log4j的配置文件默认引用地址为PATH或者CLASSPATH所在目录当中(在src下面,第一层),标准名称=log4j.properties

      总结:首先log4j是一个日志框架,用来记录项目运行中的一些日志,而log4j的配置是通过外部的配置文件来实现,体现了这个框架的灵活性

         并且日志分级别过滤,更高级的是能将日志记录到很多地方.

    二.log4j的maven引用和下载地址

      1.maven地址

       <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>

      2.jar下载地址

      http://logging.apache.org/log4j/2.x/download.html

    三.配置文件

      

      解释:

        第一行-------------初始化日志记录位置,日志过滤级别  (ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL)

        第二行-------------日志以什么方式打印(输出源)(file,DB,Console,)

        第三行-------------日志以什么格式打印(布局)(PatternLayout,HTMLLayout)

      

    //1.输出源响应的实现类
            //文件
            file--->org.apache.log4j.FileAppender
            //数据库
            DB--->org.apache.log4j.JDBCAppender
         //控制台
         Console--->org.apache.log4j.ConsoleAppender    
    
    //2.布局模式
         PatternLayout--->org.apache.log4j.PatternLayout
    
          HTMLLayout--->org.apache.log4j.HTMLLayout

    四.输出源参数解析

      一.数据库参数 (org.apache.log4j.JDBCAppender)

    user 连接数据库的用户名
    password 连接数据库的密码
    URL 数据库的连接字符串
    driver 连接数据库的驱动程序
    sql 设置操作数据库的SQL语句                    

     

     

     

    五.布局模式参数解析

      一.PatternLayout参数

    M 打印日志请求的方法名称  method
    C 输出日志打印请求的类名加包名,例:com.test.Test
    X 打印日志记录请求的客户端地址
    d 打印日志记录的当前时间%d{yyyy-MM-dd HH:mm:ss}
    m 打印应用程序的一些信息
    p 打印日志的过滤级别
    n 输出一个当前系统的换行符

    六.测试  

      1.日志记录文件测试

      log4j配置

    logDir=D:/log
    log4j.rootLogger=DEBUG,FILE
    
    log4j.appender.FILE=org.apache.log4j.FileAppender 
    log4j.appender.FILE.File=${logDir}/log.txt
    
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.conversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n

      2.日志记录数据库测试

      log4j配置

    log4j.rootLogger = INFO, DB
    
    log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.DB.URL=jdbc:mysql://localhost:3306/Testlogs
    log4j.appender.DB.driver=com.mysql.jdbc.Driver
    log4j.appender.DB.user=****
    log4j.appender.DB.password=****
    log4j.appender.DB.sql=INSERT INTO log (logDate, logClientIP, logName, logLevel, logMsg) VALUES('%d','%X{clientIP}','%C','%p','%m')
    
    log4j.appender.DB.layout=org.apache.log4j.PatternLayout

    数据库表      

    CREATE TABLE log4j(
        logId INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
        logDate VARCHAR(10),
        logClientIP VARCHAR(15),
        logName VARCHAR(255),
        logLevel VARCHAR(5),
        logMsg VARCHAR(255)
    );

    七.java测试
    package com.du20150626;
    
    import org.apache.log4j.Logger;
    
    public class Log4jTest {
        /**
         * log4j可靠的,快速的,可扩展的(灵活的)日志框架
         * log4j具有高可配置性,可以通过外部配置文件来控制
         * log4j可以根据日志不同级别来过滤日志,
         * log4j可以将日志记录直接写到控制台,文件,数据库,UNIX系统日志
         * log4j配置文件名称=log4j.properties  存放位置PATH或者CLASSPATH所在目录当中
         * 
         */
        private static Logger log = Logger.getLogger(Log4jTest.class);
        
        public static void main(String[] args) {
            log.debug("Debug ----> log4j debug");
            log.info("info -----> log4j info");
            log.info("info -----> log4j info");
            log.debug("Debug ----> log4j debug");
            log.info("info -----> log4j info");
            log.info("info -----> log4j info");
            log.info("info -----> log4j info");
        }
    }
    
    
    
     
  • 相关阅读:
    Lucene
    SQL优化以及索引
    Mysql优化
    RocketMQ
    RocketMQ
    Session共享
    Linux安装Nginx
    初识nginx
    跨域,防止表单重复提交
    HttpClient案例
  • 原文地址:https://www.cnblogs.com/duwenlei/p/4602277.html
Copyright © 2020-2023  润新知