Java日志 - JUL

news2024/11/16 11:31:22

一、JUL学习总结

(1)总结

        JDK自带的日志系统中已经为我们创建了一个顶层的RootLogger,可以针对这个顶层的RootLogger设置多个Handler(如ConsoleHandler, FileHandler等),如果想在控制台输出debug级别以上的日志,在文件中输出info级别以上的日志,那就针对各个Handler设置不同的日志级别(当然也可以设置不同的格式化器Formatter)

(2)配置文件

        说明:JDK自带的日志配置文件在 $JAVA_HOME\jre\lib\logging.properties ,可以把这个默认的日志文件拷贝出来,修改后放到自己的项目中,然后在项目中读取自定义的配置文件信息。

#RootLogger使用的处理器,在获取RootLogger对象时进行的设置
#默认的情况下,下述配置的是控制台的处理器,只能往控制台上进行输出操作
#如果想要添加其他的处理器,在当前处理器类后面通过以逗号的形式进行分隔,可以添加多个处理器
handlers= java.util.logging.ConsoleHandler,java.util.logging.FileHandler


#RootLogger的日志级别
#默认的情况下,这是全局的日志级别,如果不手动配置其他的日志级别
#则默认输出下述配置的级别以及更高的级别
# JDK自带的日志级别有:SERVER  WARNING  INFO CONFIG  FINE  FINER  FINEST  (ALL  OFF)
.level= ALL


# 输出日志文件的路径
# %h:用户目录
# %u:序号,从0开始
#java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.pattern = D:/a_myFile/workspace/personal/Java/log/logs/java%u.log
#输出日志文件的限制(50000字节)
java.util.logging.FileHandler.limit = 50000
#设置日志文件的数量
java.util.logging.FileHandler.count = 1
#输出日志的格式,默认是以XML的方式进行的输出
#java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
# 记录到文件的日志级别为INFO及以上级别
java.util.logging.FileHandler.level = INFO
# 追加日志
java.util.logging.FileHandler.append = true


# ConsoleHandler设置
# 记录到控制台的日志级别为CONFIG及以上级别
java.util.logging.ConsoleHandler.level = CONFIG
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

(3)在代码中读取自定义的配置文件

        说明:此处使用使用Maven创建项目,配置文件存放在resources目录下

package factory;

import java.io.IOException;
import java.io.InputStream;
import java.util.logging.LogManager;
import java.util.logging.Logger;

public class LogFactory {

    public static Logger getMyLogger(String name) {
        ClassLoader classLoader = LogFactory.class.getClassLoader();
        InputStream inputStream = classLoader.getResourceAsStream("logging.properties");
        LogManager logManager = LogManager.getLogManager();
        try {
            logManager.readConfiguration(inputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return Logger.getLogger(name);
    }
}

(4)在代码中记录日志

package jul;

import factory.LogFactory;
import jul.p1.Test1;
import jul.p2.Test2;

import java.util.logging.Logger;

public class JULTest1 {
    
    public static final Logger logger = LogFactory.getMyLogger("jul.JULTest1");
    
    public static void main(String[] args) {
        test1();
    }
    
    public static void test1(){
        logger.severe("severe");
        logger.warning("waring");
        logger.info("info");
        logger.config("config");
        logger.fine("fine");
        logger.finer("finer");
        logger.finest("finest");
    }
}

(4)日志记录结果

(4.1)控制台输出如下

(4.2)文件中的输入如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1868431.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI论文降重:一键操作,让你的论文查重率瞬间下降

高查重率是许多毕业生的困扰。通常,高查重率源于过度引用未经修改的参考资料和格式错误。传统的降重方法,如修改文本和增添原创内容,虽必要但耗时且成效不一。 鉴于此,应用AI工具进行AIGC降重成为了一个高效的解决方案。这些工具…

gin-vue-amdin 新增路由

1:在api目录的example 下新建controller 层如下图(): 在enter.go 中 加入 这个新建的结构体: 2:在router 的example 文件夹下 新建对应的路由文件 3:在initlize 的router 中 添加对应的代码&a…

轻松合并多个小视频,并巧妙融入新音频与独特文案,打造专业级视频作品

在这个信息爆炸的时代,视频已经成为人们表达自我、传递信息的重要工具。然而,制作一个专业级的视频作品往往需要耗费大量的时间和精力,特别是对于那些不熟悉视频剪辑技巧的人来说。但是,今天我要给大家介绍一款神奇的工具——[媒体…

新能源、新智造、新技术、新未来​ 2024常州国际新能源汽车产业博览会​ 9月20-22日盛大举行!

深入贯彻党的二十大关于制造强国建设、推动汽车产业高端化、制造化、绿色化发展的战略部署,构建新发展格局、推动高质量发展的内在要求。在“双碳”政策背景下,常州市紧扣“国际化智造名城、长三角中轴枢纽”城市定位,奋力推进“532”发展战略…

Kompas AI多平台集成与兼容性对比

一、引言 随着科技的快速发展,人工智能(AI)产品已经渗透到我们生活的方方面面。无论是在办公环境中,还是在家中,AI产品都扮演着越来越重要的角色。然而,由于操作系统和设备种类的多样化,AI产品…

适合初学者学习的面向对象编程(OOP)入门指南

面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它强调将软件设计围绕数据(或称为对象)组织起来,而不是传统的函数和逻辑。OOP的核心原则包括封装、抽象、继承和多态。让我们…

uni-app (通过HBuilderX 和 VS Code 开发)详细连接过程教学。

使用 HBuilderX 创建 uni-app 项目 并编译到微信开发者工具。 uni-app 支持两种方式创建项目: 通过 HBuilderX 创建 通过命令行创建 首先我们需要先下载HBuilderX 下载链接地址:DCloud - HBuilder、HBuilderX、uni-app、uniapp、5、5plus、mui、wap2…

OnlyOffice:为现代工作方式而生的办公套件

ONLYOFFICE官网链接:https://www.onlyoffice.com/zh/office-suite.aspx https://www.onlyoffice.com/zh/pdf-editor.aspx OnlyOffice 是一款开源的办公套件,它提供了一系列的办公工具,包括文档编辑器、表格编辑器和演示文稿编辑器。这些工具…

centos 破解密码

重启您的CentOS系统。 在GRUB引导加载器启动过程中,当看到启动画面时,按下e键进入编辑模式。 找到以 linux16 或 linux 开头的启动行。 在该行的末尾添加 rd.break 或者ro(只读)修改为 rw 加init/sysroot/bin/sh参数&#xff0…

换新手机了,旧手机的微信聊天记录怎么办?两个方法,轻松迁移

618买的新手机终于到手,但你是否在为旧手机上的微信聊天记录感到困扰?不用担心,迁移过程其实非常便捷! 在本文中,我将为你展示2个简单的步骤,让你轻松迁移微信聊天记录。无论你更换新手机的原因是什么&…

人机交互新维度|硕博电子发布双编码器操作面板、无线操作面板等新品

6月15日,硕博电子召开了一场新品发布会,向业界展示了多项前沿技术成果,其中备受瞩目的当属SPM-KEYP-D08双编码器操作面板、SPM-KEYP-D16W无线操作面板、SPR-HT-XK12A无线手持发射端以及SPQ-WT-B01洒水车专用控制面板。这些创新产品的亮相&…

【面试分享】嵌入式面试题常考难点之关于单链表的增删改查

文章目录 【面试分享】嵌入式面试题常考难点之关于单链表的增删改查一、单链表结点定义二、增(Create)——插入结点1. 于链表头部插入结点(头插法)2. 于链表尾部插入结点(尾插法)3. 于链表中间插入结点3-1.…

免费下载!Windows10企业版 LTSC 2019最新镜像!

Windows10 企业版 LTSC 2019版本以微软 Windows 10 企业版 LTSC 为基础,进行精心地优化制作,制作全程没有连接网络,确保无病毒残留,还升级了防火墙功能,能有效地保护电脑安全,让大家能舒心操作。该版本包含…

基于Python学生成绩管理系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

开源模型破局OpenAI服务限制,15分钟灵活搭建RAG和Agent应用

简介: 今天,我们做了两个实验,目标在15分钟内,完成下载社区的开源模型,部署成API,替换LlamaIndex中RAG和LangChain中OpenAI接口Agent的最佳实践,并取得符合预期的结果。 实验一 实验目标&…

基于 Paimon 的袋鼠云实时湖仓入湖实战剖析

在当今数据驱动的时代,企业对数据的实施性能力提出了前所未有的高要求。为了应对这一挑战,构建高效、灵活且可扩展的实时湖仓成为数字化转型的关键。本文将深入探讨袋鼠云数栈如何通过三大核心实践——ChunJun 融合 Flink CDC、MySQL 一键入湖至 Paimon …

AI绘画Stable Diffusion:超级质感真人大模型,逼真青纯!

大家好,我是设计师阿威 今天和大家分享一个具有超级质感的基于SD1.5的真人大模型:极致质感-DgirlV5,该模型追求质感的不断优化,细到发丝,当前最新版本是V5.1,修正了V5版本整体色彩发红的问题。 作者对该模…

OFDM 802.11a的FPGA实现:发射部分,bug更正,以及更新说明。

目录 bug1bug2bug3bug4 微信公众号获取更多FPGA相关源码: OFDM 802.11a的FPGA实现:发射部分完整工程 经过各位朋友的提醒,这部分内容有些许bug,目前已经更正,后续还会持续更新。获取更新内容,可以进上述链接&#xf…

BurpSuite2024.5.3专业版,仅支持Java21以上

01更新介绍 此版本引入了对 WebSocket 的 Burp Scanner 支持、对录制的登录编辑器的改进、WebSocket 匹配和替换规则以及许多性能改进。我们还删除了一些冗余的扫描检查。 Burp Scanner 对 WebSockets 的支持我们更新了内部代理的配置,以允许 WebSocket 流量。这使…

CORE Mobility Errorr的调试

在运行CORE tutorial 3中的mobility示例时,出现如下错误: 当看到这个问题的时候,并没有仔细去分析日志和现象,在core-daemon的进程打印界面只看了一下最后的出错堆栈: 2024-06-27 10:43:48,614 - ERROR - _server:_ca…