当前位置: 首页 > article >正文

log4j 单独设置某个类或者某个包的级别

原本的设置

log4j.rootLogger = INFO, dailyfile

log4j.appender.dailyfile.DatePattern=.yyyy-MM-dd
log4j.appender.dailyfile.Threshold = INFO
log4j.appender.dailyfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyfile.File = /var/log/zeppelin/zeppelin.log
log4j.appender.dailyfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyfile.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1} %l: %m%n

配置解析

rootLogger

rootLogger:根Logger (日志写出器),可以理解为默认日志写出器

  • 语法为: log4j.rootLogger = [ level ] , appenderName, …
  • [level]:根Logger的写出日志的级别,这里的level=INFO
  • appenderName:Appenders组件名,这里的appenderName=dailyfile,名称可以自定义,可以同时写多个,逗号分隔
rootLogger与rootCategory的区别

rootLogger是新的使用名称,对应Logger类, rootCategory是旧的使用名称,对应原来的Category类。Logger类是Category类的子类,所以,rootCategory是旧的用法,不推荐使用

Appender(日志信息输出目的地)

配置格式:log4j.appender.appenderName = className

  • appenderName:被Logger器使用的自定义标识符(如:A1、bb、C123都可以)
    一般定义时都比较有意义,如:console(控制台)、rollFile(滚动文件)
  • className 可设值项:
    • org.apache.log4j.ConsoleAppender :控制台
    • org.apache.log4j.FileAppender:文件
    • org.apache.log4j.DailyRollingFileAppender:每天产生一个日志文件
    • org.apache.log4j.RollingFileAppender:文件大小到达指定尺寸的时候产生一个新的文件
    • org.apache.log4j.WriterAppender:将日志信息以流格式发送到任意指定的地方

参考:https://blog.csdn.net/weixin_58267543/article/details/134306962

Threshold

指定日志信息的最低输出级别,默认为DEBUG

单独设置

以 org.apache.zeppelin.socket.NotebookServer举例,它的debug日志里包含具体的 SQL

输出到原文件

#log4j.appender.dailyfile.Threshold = INFO

# 这里可以指定包或具体的类,但不能为类中的方法
log4j.logger.org.apache.zeppelin.socket.NotebookServer = debug

注释掉dailyfile.Threshold的原因是 NotebookServer 没有单独设置 Appender,也就是使用rootLogger中的 dailyfile ,而 dailyfile 设置了 Threshold = INFO,指定了日志信息的最低输出级别,debug的日志级别高于info,所以不生效,需要去掉该配置

输出到单独的文件

即单独为 NotebookServer 设置一个 Appender,这里的Appender同样使用 DailyRollingFileAppender,将日志输出到一个单独的 notebook.log 文件中

log4j.logger.org.apache.zeppelin.socket.NotebookServer = debug,notebook
log4j.appender.notebook.DatePattern=.yyyy-MM-dd
log4j.appender.notebook= org.apache.log4j.DailyRollingFileAppender
log4j.appender.notebook.File = /var/log/zeppelin/notebook.log
log4j.appender.notebook.layout = org.apache.log4j.PatternLayout
log4j.appender.notebook.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1} %l: %m%n
  1. 如果设置 dailyfile.Threshold = INFO,那么在 zeppelin.log 中 NotebookServer 的日志级别为 INFO,在 notebook.log 中 NotebookServer 的日志级别为 debug
  2. 如果不设置 dailyfile.Threshold ,那么在 zeppelin.log 和 notebook.log 中对应的日志级别都为 debug
  3. 另外可以设置 NotebookServer 的日志只在 notebook.log 中而不在 zeppelin.log 中打印 :
log4j.additivity.org.apache.zeppelin.socket.NotebookServer=false

log4j.additivity.*=false,指定子类不继承父类的设置。


http://www.kler.cn/a/459694.html

相关文章:

  • 超高分辨率 图像 分割处理
  • parquet文件数据格式介绍以及python pandas对parquet常见操作
  • SpringBoot异步线程@Async的使用注意
  • Tailwind CSS 实战:响应式布局最佳实践
  • redis的集群模式与ELK基础
  • 3. C语言 数据类型
  • python利用selenium实现大麦网抢票
  • [单master节点k8s部署]43.全链路监控(二)
  • Prompt工程--AI开发--可置顶粘贴小工具
  • 【CSS in Depth 2 精译_094】16.2:CSS 变换在动效中的应用(下)——导航菜单的文本标签“飞入”特效与交错渲染效果的实现
  • Android 14.0 设置默认屏幕亮度百分比
  • [Pro Git#2] 分支管理 | branch fix_bug , feature | 处理合并冲突
  • 微信小程序:定义页面标题,动态设置页面标题,json
  • Flink的三种时间语义
  • 在 Ubuntu 下通过 Docker 部署 Nginx 服务器
  • 《机器学习》从入门到实战——逻辑回归
  • Spring Boot日志处理
  • hadoop sql 执行log
  • ARM200~500部署
  • 第11关:博客系统之查询博客评论
  • 揭秘 Fluss 架构组件
  • 手撕算法-严刑拷打
  • 基础数据结构--二叉树
  • 搭建知识中台:大健康零售行业的数字化升级之路
  • Apollo 自动驾驶全景解析
  • keepalived详细笔记