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

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

 

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

复制代码
import org.apache.log4j.*;
//by godtrue
public class UseLog4j {
    //日志记录器
    private static Logger LOGGER = LogManager.getLogger(UseLog4j.class);
    //程序入口——主函数
    public static void main(String[]args){
        /**
         * 设置日志信息输出的风格样式,日志输出的风格主要有以下几种,可以各自设置一下,看看对应的效果
         */

        /**
         * 1)org.apache.log4j.HTMLLayout ,以HTML表格形式布局,输出的信息为:
         * 1:从layout(布局)的构建到日志事件创建所经过的毫秒数
         * 2:生成该日志事件的线程的名称
         * 3:日志事件的优先级,即DEBUG,INFO,WARN,ERROR
         * 4:日志事件的category(类别),通常就是所在类的全名
         * 5:代码中指定的消息
         */
//        Layout layout = new HTMLLayout();

        /**
         * 2)org.apache.log4j.SimpleLayout,输出的信息为:
         * 1:日志事件的优先级,即DEBUG,INFO,WARN,ERROR
         * 2:代码中指定的消息
         */
//        Layout layout = new SimpleLayout();

        /**
         * 3)org.apache.log4j.TTCCLayout,输出的信息为:
         * 1:从layout(布局)的构建到日志事件创建所经过的毫秒数
         * 2:生成该日志事件的线程的名称
         * 3:日志事件的优先级,即DEBUG,INFO,WARN,ERROR
         * 4:日志事件的category(类别),通常就是所在类的全名
         * 5:代码中指定的消息
         */
//        Layout layout = new TTCCLayout();

        /**
         * 4)org.apache.log4j.PatternLayout(可以灵活地指定布局模式),这是实际工作中我们最常用的一种,输出的信息是自定义的,比如:下面的设置
         */
        //设置日志信息的格式化方式
        String pattern = "%l - %p - %m%n";
        Layout layout = new PatternLayout(pattern);

        //设置日志信息的输出目的地
        Appender appender= new ConsoleAppender(layout);
        //设置日志信息的输出配置
        BasicConfigurator.configure(appender);
        //输出日志信息
        LOGGER.info(" my level is INFO");
    }
}
复制代码

ps:只有 PatternLayout 可以灵活指定布局模式,通过 PatternLayout(String pattern) 来进行配置。其它击中布局模式都是定义好的,不需要自己进行指定!

1.1 感受

     1)上面的代码将几种常用的日志输出风格都列出来了,感兴趣的话,可以将注释解注,试验一下效果

     2)通过试验,我也将每种风格的日志信息都是输出什么也简单的列举了一下,总的感觉自定义的风格是最好玩的一个,我们可以随便的定义自己想要的输出内容

     3)log4j定义的日志输出风格不止这几个,还有别的只是这几个比较简单,介绍起来也方便,也能比较一下各种风格的异同,其中自定义的方式是最为常用的,非常的灵活方便

 



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,让更多的人能够享受到获取知识的快乐!因为本人初入职场,鉴于自身阅历有限,所以本博客内容大部分来源于网络中已有知识的汇总,欢迎各位转载,评论,大家一起学习进步!如有侵权,请及时和我联系,切实维护您的权益!
posted @   CS408  阅读(183)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示