zoukankan      html  css  js  c++  java
  • Log4j的配置和使用

    1.Log4j简单介绍

        Log4j是Apache的一个开放源码项目,通过使用Log4j,我们能够控制日志信息输送的目的地是控制台、文件、邮箱等;我们也能够控制每一条日志的输出格式。通过定义每一条日志信息的级别。我们能够更加仔细地控制日志的生成过程。

    最令人感兴趣的就是,这些能够通过一个配置文件来灵活地进行配置。而不须要改动应用的代码。

    2.应用场景

    1.生产server或者測试server的日志输出

        本地开发中IDE能够直接控制台输出(菜鸟的行为),但是程序在远程server上怎样查看呢?通过log4j,能够配置项目以文件日志形式输出

    2.定义不同server的日志输出级别

        log4j有多种日志级别OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,推荐使用的为4个等级 从高究竟ERROR, WARN, INFO,DEBUG,在測试server我们能够设置为比較低的日志等级。比方INFO,会输出ERROR,WARN,INFO三个等级的日志信息。在正式server能够定义为ERROR等级,提高性能

        能够配置全局的日志级别,也能够为某个类单独配置日志级别。并且这些配置不用改动程序源码,仅仅用在配置文件里略微改动就能够了

    3.配置输出目的地

        日志能够输出到多种终端,比方到控制台。文件(能够每天创建一个日志文件)。邮箱等。比方正式数据库突然无法连接了,能够把错误日志发送到指定邮箱。提醒相关人员赶紧检查原因

    3.配置使用

    本文使用Intellij+Maven,须要pom文件加入依赖

    不会使用Maven的同学能够找到log4j的jar包,放在项目的lib下

    log4j.rootLogger=error,console
    
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.Target=System.out
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss} %p %c (%L) - %m%n


    3.1控制台日志输出

    在resources文件夹下加入log4j.properties,(非maven项目能够放在默认的src文件夹下)

    log4j.rootLogger=error,console
    
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.Target=System.out
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss} %p %c (%L) - %m%n

    关于配置的具体具体解释。能够參考网上的其它资料 比方:log4j.properties配置具体解释

    line1:ERROR是默认的全局日志等级,后面能够配置多个根节点(为了各种类型的配置)

    line3:log4j.appender.xxx 相应某个节点名  配置输出类型

    line4:log4j.appender.xxx.Target  能够设置Sysout.err 是红色显示

    line5:设置数据的布局  有多种布局设置 比方html布局等等

    line6:能够定义输出格式

    package com.lujianing.test;
    import org.apache.log4j.Logger;
    import org.junit.Test;
    
    public class Log4JTest {
        public static Logger logger = Logger.getLogger(Log4JTest.class);
        @Test
        public void Test(){
            logger.error("error");
            logger.warn("warn");
            logger.info("info");
            logger.debug("debug");
        }
    }

    由于在配置文件里配的默认日志级别是ERROR。所以以下的几个等级就不会输出了

    3.2文件日志输出

    log4j.rootLogger=error,console,file
    
    #省略控制台输出
    
    log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.File=${catalina.base}/logs/log4j_test/log4j.log
    log4j.appender.file.DatePattern='_'yyyyMMdd'.log'
    log4j.appender.file.encoding=UTF-8
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss,SSS} %p %c (%L) - %m%n

    line5:设置输出类型为每天一个日志

    line6:日志输出文件夹${catalina.base}为项目所在的盘符文件夹下

    line7:以往日志的后缀格式 比方昨天log4j_20140411

    3.3邮箱日志数据

    加入发送邮件须要的pom依赖,非maven项目能够在lib下加入 mail.jar 和activation.jar

            <!--commons-email 用于邮件发送 -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-email</artifactId>
                <version>1.3.2</version>
            </dependency>

    log4j.rootLogger=error,console,file,mail
    
    #省略前两个配置
    
    log4j.appender.mail = org.apache.log4j.net.SMTPAppender
    log4j.appender.mail.From = 307970779@qq.com
    log4j.appender.mail.SMTPUsername = 307970779@qq.com
    log4j.appender.mail.SMTPPassword = xx
    log4j.appender.mail.SMTPHost = smtp.qq.com
    log4j.appender.mail.Subject = 邮件的标题
    log4j.appender.mail.To = 307970779@qq.com
    log4j.appender.mail.layout = org.apache.log4j.PatternLayout
    log4j.appender.mail.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %l %m %n
    
    log4j.logger.com.lujianing.test.Log4JTestMail=FATAL

    配置发送的邮箱账号,password.SMTP,邮件标题格式等

    注意:

    1. properties中Subject设置邮件的标题,假设是中文会乱码

    2. 发送邮件不是多线程,会堵塞下边的程序,所以在程序中注意使用

    3. 能够设置邮件的发送频率。详细參考扩展Log4j级别。实现邮件提醒

    4. 能够设置为较高的等级,比方指定核心关键类的日志等级为FATAL,当程序中出现严重问题调用logger.fatal


       当然在企业项目中,肯定还有更好的解决方法,所以mail功能还是慎用,这里我们仅仅是用来学习


    4.Git地址

    项目Git地址:http://git.oschina.net/lujianing/Log4j_Demo.git

    使用HTMLLayout格式效果 另外能够參考HTMLLayout 类重写 重写样式



  • 相关阅读:
    hive与hbase整合
    待重写
    hive DML
    【知识强化】第六章 总线 6.1 总线概述
    【知识强化】第五章 中央处理器 5.1 CPU的功能和基本结构
    【知识强化】第四章 指令系统 4.3 CISC和RISC的基本概念
    【知识强化】第四章 指令系统 4.2 指令寻址方式
    【知识强化】第四章 指令系统 4.1 指令格式
    【知识强化】第三章 存储系统 3.6 高速缓冲存储器
    【知识强化】第三章 存储系统 3.5 双口RAM和多模块存储器
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6887861.html
Copyright © 2011-2022 走看看