博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
log4j(三)——如何控制不同级别的日志信息的输出?
阅读量:5943 次
发布时间:2019-06-19

本文共 2701 字,大约阅读时间需要 9 分钟。

一:测试环境与一样,这里不再重述

 

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

import org.apache.log4j.*;//by godtruepublic 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('썐', "FATAL", 0);         *     public static final Level ERROR = new Level('鱀', "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)原本以为就四种级别的,没想到有八种,知识不系统的学习,可能会错过好多

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

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

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

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

 

转载地址:http://nbwxx.baihongyu.com/

你可能感兴趣的文章
Android网络之数据解析----SAX方式解析XML数据
查看>>
Java递归列出所有文件和文件夹
查看>>
[关于SQL]查询成绩都大于80分的学生
查看>>
Delphi(Tuxedo,BDE,ADO)三合一数据集组件HsTxQuery
查看>>
java之ibatis数据缓存
查看>>
“TNS-03505:无法解析名称”问题解决一例
查看>>
LeetCode - Longest Common Prefix
查看>>
Android图片处理
查看>>
2015年第21本:万万没想到,用理工科思维理解世界
查看>>
大家谈谈公司里的项目经理角色及职责都是干什么的?
查看>>
剑指offer
查看>>
Velocity魔法堂系列二:VTL语法详解
查看>>
NopCommerce架构分析之八------多语言
查看>>
转:Eclipse自动补全功能轻松设置
查看>>
mysql update操作
查看>>
Robots.txt - 禁止爬虫(转)
查看>>
MySQL数据库
查看>>
项目分析_xxoo-master
查看>>
SQLServer2012自增列值跳跃的问题
查看>>
ViewBag对象的更改
查看>>