返回顶部
首页 > 资讯 > 后端开发 > Python >浅谈log4j的rootLogger及其他坑爹的地方
  • 196
分享到

浅谈log4j的rootLogger及其他坑爹的地方

2024-04-02 19:04:59 196人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录log4j的rootLogger及其他坑爹地方经过试验发现!!!!对于申明appender的包rootLogger的级别设置不起作用log4j rootLogger配置log4j

log4j的rootLogger及其他坑爹地方

这里用的是org.apache.log4j.Logger


log4j.rootLogger=error, stdout 
log4j.appender.appenderName=org.apache.log4j.AsyncAppender 
 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
#only time no date.outfile1 has date
 
log4j.logger.com.ht=info,outfile1 
log4j.appender.outfile1=org.apache.log4j.RollingFileAppender
log4j.appender.outfile1.File=log/ht.log
log4j.appender.outfile1.MaxFileSize=100MB
log4j.appender.outfile1.MaxBackupIndex=50
log4j.appender.outfile1.layout=org.apache.log4j.PatternLayout
log4j.appender.outfile1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
 
log4j.logger.com.ht.log=info,outfile2 
log4j.appender.outfile2=org.apache.log4j.RollingFileAppender
log4j.appender.outfile2.File=log/ht2.log
log4j.appender.outfile2.MaxFileSize=100MB
log4j.appender.outfile2.MaxBackupIndex=50
log4j.appender.outfile2.layout=org.apache.log4j.PatternLayout
log4j.appender.outfile2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n

然后有两个类,Test1在com.ht包下面,Test2在com.ht.log包下面。每个下面打印一句:logger.info();

经过试验发现!!!!

Test1将输出到控制台和ht.log

Test2将输出到控制台和ht.log和ht2.log

注意这里rootLogger的级别可是error,可见这里的级别不起作用。

对于申明appender的包rootLogger的级别设置不起作用

其实,这里的error只对于没有申明appender的包才起作用。如果去掉log4j.logger.com.ht.log这一句,Test1没有任何输出,除非logger.error才会输出到控制台。

第二点:凡是申明appender的包,不论申明级别一定会包含rootLogger的输出,如果同时指定了outfile,那么日志会出现两份。

第三点:com.ht.log这个包下面的类可以匹配到所有上级目录的设置。

日志怎么设置要想清楚啊!不然这一句打到控制台那句打到文件,出问题了查出来的日志不连贯,好几个文件查来查去。

log4j.additivity.com.ht=false 可以不写入rootLogger。默认是true

log4j rootLogger配置

log4j.rootLogger=INFO,db语法为


log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
  • level:是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。

Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。

通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。

比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。

appenderName:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

例如:

log4j.rootLogger=info,A1,B2,C3 配置了3个输出地方,这个名字可以任意(如上面的db),但必须与我们在后面进行的设置名字对应;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 浅谈log4j的rootLogger及其他坑爹的地方

本文链接: https://lsjlt.com/news/160952.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 浅谈log4j的rootLogger及其他坑爹的地方
    目录log4j的rootLogger及其他坑爹地方经过试验发现!!!!对于申明appender的包rootLogger的级别设置不起作用log4j rootLogger配置log4j...
    99+
    2024-04-02
  • 浅谈Keras中fit()和fit_generator()的区别及其参数的坑
    1、fit和fit_generator的区别 首先Keras中的fit()函数传入的x_train和y_train是被完整的加载进内存的,当然用起来很方便,但是如果我们数据量很大,那...
    99+
    2024-04-02
  • 浅谈MultipartFile中transferTo方法的坑
    前言:最近用SpringBoot写文件上传功能,使用参数绑定之后确实是非常的方便了。 但是,项目部署就出现了问题,搞得我一脸懵逼。 后来,才发现是因为我使用了相对路径导致的,这个绝对...
    99+
    2024-04-02
  • 浅谈pytorch中stack和cat的及to_tensor的坑
    初入计算机视觉遇到的一些坑 1.pytorch中转tensor x=np.random.randint(10,100,(10,10,10)) x=TF.to_tensor(x) ...
    99+
    2024-04-02
  • Log4j properties的配置及其使用方法
    这篇文章主要讲解了“Log4j properties的配置及其使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Log4j properties的配置及其使用方法”吧!目录一、log4j...
    99+
    2023-06-20
  • 浅谈Redis 缓存的三大问题及其解决方案
    目录一、缓存穿透1. 常见解决方案2. 布隆过滤器3. 缓存空数据与布隆过滤器的比较二、缓存击穿解决方案三、缓存雪崩解决方案Redis 经常用于系统中的缓存,这样可以解决目前 IO ...
    99+
    2024-04-02
  • Android 启动activity的4种方式及打开其他应用的activity的坑
    Android启动的四种方式分别为standard,singleTop,singleTask,singleInstence。 standard是最常见的activity启动方...
    99+
    2022-06-06
    activity Android
  • 浅析UniApp跳转到其他页面的方法
    UniApp是一款由DCloud推出的一款基于Vue.js框架的开发工具,它可以实现一次编写,多端运行的效果。开发者可以使用UniApp快速地构建出一个跨平台的应用程序。在UniApp开发过程中,经常需要实现页面之间的跳转。本文将介绍Uni...
    99+
    2023-05-14
  • 浅谈StringBuilder类的capacity()方法和length()方法的一些小坑
    今天在做项目的过程中遇见一个StringBuilder.delete()删除得不到自己期望结果问题,一个截取字符串的问题,总得不到自己所期望的答案: 问题如下: stringBu...
    99+
    2024-04-02
  • 浅谈Java继承中的转型及其内存分配
    看书的时候被一段代码能凌乱啦,代码是这样的:package 继承;abstract class People { public String tag = "疯狂Java讲义"; //① public String na...
    99+
    2023-05-30
    java 继承 内存
  • 浅谈使用setBounds()方法需要注意的地方
    第一点,使用这个方法,component的x,y坐标是相对于它的父容器的。如果不注意,x、y的值,比父容器的宽度和高度还大的话,就容易造成加进去组件但是显示不出来的问题。我就是遇到这么一个问题,现在才想明白。第二点,这个方法只有在父容器的布...
    99+
    2023-05-31
    setbounds 方法
  • 浅谈MyBatis原生批量插入的坑与解决方案
    目录原生批量插入的“坑”解决方案分片 Demo 实战原生批量插入分片实现总结前面的文章咱们讲了 MyBatis 批量插入的 3 种方法:循环单次插入、MyBatis Plus 批量插...
    99+
    2024-04-02
  • 浅谈java中==以及equals方法的用法
    equals 方法是 java.lang.Object 类的方法。有两种用法说明:(1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。“==”比较两个变量本身的值,即两个对象在内存中的首地址。“eq...
    99+
    2023-05-30
    java equals方法 ava
  • 浅谈github上删除本地仓库的方法
    GitHub是全球最大的开源代码托管平台之一,拥有数百万活跃的用户。本地仓库是在本地计算机存储的GitHub项目的副本。本地仓库通常被用作开发和版本控制的工具,或是被用来存储一些私有的或是不想发布的代码。但是,有时候你需要删除本地仓库,下面...
    99+
    2023-10-22
  • 浅谈Redis变慢的原因及排查方法
    目录原因1:实例内存达到上限原因2:开启内存大页原因3:使用Swap原因4:网络带宽过载 原因5:其他原因原因1:实例内存达到上限 排查思路 如果你的 Redis 实例设置...
    99+
    2024-04-02
  • ip地址和其他系统有冲突的解决方法
    这篇文章主要讲解了“ip地址和其他系统有冲突的解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ip地址和其他系统有冲突的解决方法”吧!IP地址与网络上其它系统发生冲突的原因是:都是在路...
    99+
    2023-06-20
  • 浅谈java接口的幂等性及解决方案
    目录一、什么情况下需要幂等二、幂等性解决方案2.1token机制(令牌)2.2各种锁机制2.3各种唯一约束2.4防重表2.5全局请求唯一id总结一、什么情况下需要幂等 用户多次点击...
    99+
    2024-04-02
  • 浅谈线性表的原理及简单实现方法
    一、线性表原理:零个或多个同类数据元素的有限序列原理图:特点 :有序性有限性同类型元素第一个元素无前驱,最后一个元素无后继,中间的元素有一个前驱并且有一个后继线性表是一种逻辑上的数据结构,在物理上一般有两种实现 顺序实现和链表实现二、基于数...
    99+
    2023-05-31
    线性表
  • 浅谈影子系统的缺点及WinXP下的卸载方法
      由于WinXP已停止服务,为了防止WinXP的各种问题,许多用户会使用影子系统,影子系统的主要功能是重启后能还原系统,保护磁盘。多数用户首选PowerShadow影子系统,那么安装了PowerShadow后WinXP...
    99+
    2023-06-12
    WinXP 影子系统 缺点 系统 卸载 影子
  • 浅谈vue中文件下载的几种方式及方法封装
    一、通过对后端发送post请求,使用blob下载文件 function downBlob(res, fileName = "导出报表", format = "xlsx") {   ...
    99+
    2023-01-13
    vue 文件下载
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作