(转)log4j(三)——如何控制不同级别的日志信息的输出?

一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述

1 老规矩,先来个栗子,然后再聊聊感受

package test.log4j.test3;

import org.apache.log4j.*;
//by godtrue
public class UseLog4j {
    //日志记录器
    private static Logger LOGGER = LogManager.getLogger(UseLog4j.class);
    //程序入口——主函数
    public static void main(String[]args){
        //设置日志信息的格式化方式
        String pattern = "%l - %p - %m%n";
        //设置日志信息输出的风格样式
        Layout layout = new PatternLayout(pattern);
        //设置日志信息的输出目的地
        Appender appender= new ConsoleAppender(layout);
        //设置日志信息的输出配置
        BasicConfigurator.configure(appender);
        /**
         * 日志输出的级别,主要有以下几种:
         * 1)ALL    打印各级日志信息包括自定义级别。
         * 2)TRACE    最详细的信息。一般这些信息只记录到日志文件中。自版本1.2.12[3]。
         * 3)DEBUG    流经系统的详细信息。一般这些信息只记录到日志文件中。
         * 4)INFO    令人感兴趣的运行时事件(启动/关闭)。一般这些信息将立即呈现在状态控制台上,因而要保守使用,并保持到最低限度。
         * 5)WARN    使用已过时的API,API的滥用,潜在错误,其他不良的或意外的运行时的状况(但不一定是错误的)。一般这些信息将立即呈现在状态控制台上。
         * 6)ERROR    其他运行时错误或意外情况。一般这些信息将立即呈现在状态控制台上。
         * 7)FATAL    导致应用程序提前终止的严重错误。一般这些信息将立即呈现在状态控制台上。
         * 8)OFF    最高级别,用于关闭日志记录。
         *
         * 日志的级别之间的大小关系如右所示:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
         *
         * Log4j建议只使用四个级别,优先级从高到低分别是 ERROR > WARN > INFO > DEBUG。
         * 通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
         * 比如:在这里如果定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来,但是 ERROR > WARN > INFO 这三者的日志信息能够正常打印
         */

        /**
         * 设置日志的级别,为了加深日志级别的作用的印象,你可以试试设置一下各个级别,看看对日志信息输出的控制:
         *     public static final Level OFF = new Level(2147483647, "OFF", 0);
         *     public static final Level FATAL = new Level(50000, "FATAL", 0);
         *     public static final Level ERROR = new Level(40000, "ERROR", 3);
         *     public static final Level WARN = new Level(30000, "WARN", 4);
         *     public static final Level INFO = new Level(20000, "INFO", 6);
         *     public static final Level DEBUG = new Level(10000, "DEBUG", 7);
         *     public static final Level TRACE = new Level(5000, "TRACE", 7);
         *     public static final Level ALL = new Level(-2147483648, "ALL", 7);
         */
        LOGGER.setLevel(Level.INFO);
        //打印当前的日志信息有效级别
        LOGGER.fatal("the effective level is : "+LOGGER.getEffectiveLevel());
        //测试日志级别的作用,仅仅输出大于等于目前有效级别的日志信息
        LOGGER.trace("my level is TRACE");
        LOGGER.debug("my level is DEBUG");
        LOGGER.info(" my level is INFO");
        LOGGER.warn(" my level is WARN");
        LOGGER.error("my level is ERROR");
        LOGGER.fatal("my level is FATAL");
    }
}

运行结果:

1.1 感受

      1)原本以为就四种级别的,没想到有八种,知识不系统的学习,可能会错过好多

2)级别这个知识点相对来说是最简单,他们就像开关一样,来决定哪些日志方法被调用,哪些不被调用

3)他们的大小关系是这样的——ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF

4)设置了对应的级别之后,日志框架就只调用大于等于这个级别的方法

5)Log4j建议只使用如右四个级别——DEBUG < INFO < WARN < ERROR

时间: 2024-12-24 23:37:48

(转)log4j(三)——如何控制不同级别的日志信息的输出?的相关文章

log4j(三)——如何控制不同级别的日志信息的输出?

一:测试环境与log4j(一)--为什么要使用log4j?一样,这里不再重述 二:老规矩,先来个栗子,然后再聊聊感受 import org.apache.log4j.*; public class UseLog4j { //日志记录器 private static Logger LOGGER = LogManager.getLogger(UseLog4j.class); //程序入口--主函数 public static void main(String[]args){ //设置日志信息的格式化

log4j(四)——如何控制不同风格的日志信息的输出?

一.测试环境 与log4j(一)--为什么要使用log4j?一样,这里不再重述 二.老规矩,先来个例子,然后再聊聊感受 package com.sc.log4j; import org.apache.log4j.Appender; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.Layout; import org.apache.

(转)log4j(二)——如何控制日志信息的输出?

一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 先看栗子再来下结论 import org.apache.log4j.*; import test.log4j.bean.Person; //by godtrue public class UseLog4j { //日志记录器 private static Logger LOGGER = LogManager.getLogger(UseLog4j.class); //循环次数 private static long

log4j(五)——如何控制不同目的地的日志输出?

一:测试环境与log4j(一)--为什么要使用log4j?一样,这里不再重述 二:老规矩,先来个栗子,然后再聊聊感受 import org.apache.log4j.*; import java.io.*; public class UseLog4j { //日志记录器 private static Logger LOGGER = LogManager.getLogger(UseLog4j.class); //程序入口--主函数 public static void main(String[]a

(转)log4j(五)——如何控制不同目的地的日志输出?

一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 package test.log4j.test5; /** * @author lxw * @describe * @date 2017年7月25日 下午5:30:44 */ import org.apache.log4j.*; import java.io.*; //by godtrue public class UseLog4j { //日志记录器 private stati

Java日志信息存库(log4j篇)

一.Log4j简介 在一个完整的J2EE项目开发中,日志是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为,并按照某种规范表达出来.我们可以通过日志信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统等行为.Log4j是Apache针对于日志信息处理的一个开源项目,其最大特点是通过一个配置文件就可以灵活地控制日志信息的输出方式(控制台.文件和数据库等).日志输出格式及日志信息打印级别等,而不需要修改应用的代码. 二.编写背景 作为一名程序猿在开发中总能遇到一些比较奇葩的需求,

Log4J日志配置详解和自定义log4j日志级别及输出日志到不同文件实现方法

Log4J日志配置详解 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN <

Log4j高级教程,根据包输出日志

以前都是把所有日志都输出到一个文件下面,今天有个同事问想把某个包下的日志输出到指定的地方,于是就在网上查了一些资料,总结一下,以免以后用到.  真的是没有那么多时间来整理啊 哎,今天用到的是最下面的几个,指定包或者类的日志文件输入到指定的文件,关键在于先前配置了rootlogger的全部配置,如何让自定义的包或类下的日志不受全局rootlogger管理?注意这句: log4j.rootLogger = DEBUG,S,E,D    #全局 log4j.logger.org.apache.axis

配置log4j日志信息

一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR <