log4j 的使用和配置简介

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 12345log4jlog4j1.2.17级别OFF 关闭所有日志记录FATAL 严重的错误事件将会导致应用程序的退出ERROR 虽然发生错误事件,但仍然不影响系统的继续运行。

1
2
3
4
5

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

级别
OFF 关闭所有日志记录
FATAL 严重的错误事件将会导致应用程序的退出
ERROR 虽然发生错误事件,但仍然不影响系统的继续运行。
WARN 会出现潜在错误的情形。
INFO 消息在粗粒度级别上突出强调应用程序的运行过程。
DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的
ALL 开启所有的日志记录

级别优先级
OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL
使用
在pom.xml 中添加依赖
在项目的中添加log4j.properties

配置
log4.rootLogger
log4j.rootLogger=日志级别,appender1, appender2, ….
注意,rootLogger默认是对整个工程生效
注意,如果只想对某些包操作,那么:log4j.logger.com.hutu=info, stdout,表示该日志对package com.hutu生效
注意,这样做可以区分dev/线上,也可以减小性能影响:if(log.isDebugEnabled()){log.debug();}

基础配置
Appender
属性
描述

layout
Appender 使用 Layout 对象和与之关联的模式来格式化日志信息。

target
目的地可以是控制台、文件,或依赖于 appender 的对象

level
级别用来控制过滤日志信息

threshold
Appender 可脱离于日志级别定义一个阀值级别,Appender 对象会忽略所有级别 低于阀值级别的日志。

filter
Filter 对象可在级别基础之上分析日志信息,来决定 Appender 对象是否处理或忽 略一条日志记录。

所有appender
官方文档

AppenderSkeleton
AsyncAppender
ConsoleAppender
输出到控制台
1
2
3
4
5
6
7

log4j.rootLogger = debug , stdout , D , E

输出到控制台

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

DailyRollingFileAppender
每天产生一个文件
ExternallyRolledFileAppender
FileAppender
文件
JDBCAppender
将日志信息保存到数据库中
JMSAppender
LF5Appender
NTEventLogAppender
NullAppender
RollingFileAppender
文件大小到达指定大小,则新创建个文件
SMTPAppender
SocketAppender
SocketHubAppender
SyslogAppender
TenetAppender
WriterAppender
将日志信息以流格式发送到任意指定的地方
Layout
Layouts
DateLayout
HTMLLayout
PatternLayout
SimpleLayout
XMLLayout
日志格式化
模式转换符
转换字符
含义

c
使用它为输出日志分类,比如对于分类”a.b.c”,模式%c{2}会输出”b.c”

C
使用它输出发起记录日志请求的类的全名。比如对于类”cn.fondme.logger.XXClass”,模式%C{1}会输出”XXClass”

d
使用它输出记录日志的日期,比如%d{HH:mm:ss}

F
在记录日志时,使用它输出文件名

I
用它输出生成日志的调用者的地域信息。

L
使用它输出发起日志请求的行号。

m
使用它输出和日志事件关联的,由应用提供的信息。

M
使用它输出发起日志请求的方法名。

n
输出平台相关的换行符。

p
输出日志事件的优先级。

r
使用它输出从构建布局到生成日志事件所花费的时间,以毫秒为单位。

t
输出生成日志事件的线程名。

x
输出和生成日志事件线程相关的 NDC (嵌套诊断上下文)。

X
该字符后跟 MDC 键,比如 X{clientIP} 会输出保存在 MDC 中键 clientIP 对应的值。

%
百分号, %% 会输出一个 %。

格式修饰符
格式修饰符
左对齐
最小宽度
最大宽度
注释

%20c

20

如果列名少于 20 个字符,左边使用空格补齐

%-20c

20

如果列名少于 20 个字符,右边使用空格补齐。

%.30c
不适用

30
如果列名长于 30 个字符,从开头剪除。

%20.30c

20
30
如果列名少于 20 个字符,左边使用空格补齐,如果列名长于 30 个字 符,从开头剪除。

%-20.30c

20
30
如果列名少于 20 个字符,右边使用空格补齐,如果列名长于 30 个字 符,从开头剪除。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
打赏
0
0
0
0
1176
分享
相关文章
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— application.yml 中对日志的配置
在 Spring Boot 项目中,`application.yml` 文件用于配置日志。通过 `logging.config` 指定日志配置文件(如 `logback.xml`),实现日志详细设置。`logging.level` 可定义包的日志输出级别,例如将 `com.itcodai.course03.dao` 包设为 `trace` 级别,便于开发时查看 SQL 操作。日志级别从高到低为 ERROR、WARN、INFO、DEBUG,生产环境建议调整为较高级别以减少日志量。本课程采用 yml 格式,因其层次清晰,但需注意格式要求。
540 0
Go语言项目工程化 —— 日志、配置、错误处理规范
本章详解Go语言项目工程化核心规范,涵盖日志、配置与错误处理三大关键领域。在日志方面,强调其在问题排查、性能优化和安全审计中的作用,推荐使用高性能结构化日志库zap,并介绍日志级别与结构化输出的最佳实践。配置管理部分讨论了配置分离的必要性,对比多种配置格式如JSON、YAML及环境变量,并提供viper库实现多环境配置的示例。错误处理部分阐述Go语言显式返回error的设计哲学,讲解标准处理方式、自定义错误类型、错误封装与堆栈追踪技巧,并提出按调用层级进行错误处理的建议。最后,总结各模块的工程化最佳实践,助力构建可维护、可观测且健壮的Go应用。
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
2801 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
156 23
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
|
9月前
|
SQL
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
368 5
Rsyslog配置不同端口收集不同设备日志
Rsyslog配置不同端口收集不同设备日志
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
122 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问