首页 > 其他分享 >【建议收藏】Log4j配置详解

【建议收藏】Log4j配置详解

时间:2023-06-12 18:35:07浏览次数:45  
标签:Log4j appender yyyy 详解 org apache layout 收藏 log4j

  大家在日常开发中必然会使用到日志组件,Log4j是Java方向上比较常用的日志组件,今天给大家分享下Log4j支持的配置项,强烈建议收藏,以便配置时查看

#展示log4j各种配置,私有部分见文件中注释,公有部分详细注释见文件最后
log4j.rootLogger=DEBUG,console,file,rolling,daily,DATABASE,MAIL

#控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n

#普通文件
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.Encoding=UTF-8
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n
log4j.appender.file.File=../logs/file.log
log4j.appender.file.Append=true
log4j.appender.rolling.Threshold=DEBUG 

#轮转文件
log4j.appender.rolling=org.apache.log4j.RollingFileAppender
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n
log4j.appender.rolling.Append=true
log4j.appender.rolling.Encoding=UTF-8
log4j.appender.rolling.Threshold=DEBUG
#表示最多保存10个日志文件
log4j.appender.rolling.MaxBackupIndex=10
log4j.appender.rolling.File=../logs/rolling.log
log4j.appender.rolling.MaxFileSize=10MB

#按日期区分
log4j.appender.daily=org.apache.log4j.DailyRollingFileAppender
log4j.appender.daily.layout=org.apache.log4j.PatternLayout
log4j.appender.daily.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n
log4j.appender.daily.Append=true
log4j.appender.daily.Encoding=UTF-8
log4j.appender.daily.Threshold=DEBUG
log4j.appender.daily.File=../logs/daily.log
# 表示重开文件的频率
# yyyy-MM,对应monthly(每月)
# yyyy-ww,对应weekly(每周)
# yyyy-MM-dd,对应daily(每天)
# yyyy-MM-dd-a,对应half-daily(每半天)
# yyyy-MM-dd-HH,对应hourly(每小时)
# yyyy-MM-dd-HH-mm,对应minutely(每分钟)
# 不用处理的文字放在单引号之间
log4j.appender.daily.DatePattern='.'yyyy-MM-dd'.log'

#写入数据库
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
log4j.appender.DATABASE.user=root
log4j.appender.DATABASE.password=root
log4j.appender.DATABASE.sql=INSERT INTO test (text) VALUES ('%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n

#发送邮件
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=ERROR
[email protected]
log4j.appender.MAIL.SMTPHost=smtp.sina.com
log4j.appender.MAIL.Subject=Log4J Message
[email protected]
#发件箱登陆用户名
log4j.appender.MAIL.SMTPUsername=******
#发件箱登陆密码
log4j.appender.MAIL.SMTPPassword=******
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n

# 定义输出级别和输出端(A1,A2,A3....)
# DEBUG: 指出细粒度信息事件对调试应用程序是非常有帮助的,就是输出debug的信息.
# INFO: 表明消息在粗粒度级别上突出强调应用程序的运行过程,就是输出提示信息.
# WARN: 表明会出现潜在错误的情形,就是显示警告信息.
# ERROR: 指出虽然发生错误事件,但仍然不影响系统的继续运行.就是显示错误信息.
# FATAL: 指出每个严重的错误事件将会导致应用程序的退出.
# ALL: 是最低等级的,用于打开所有日志记录.
# OFF: 是最高等级的,用于关闭所有日志记录.
# log4j建议只使用五个级别,级别顺序(由低到高): DEBUG < INFO < WARN < ERROR < FATAL
# windows下控制台效率比较差,输出的多了,非常影响服务器性能.
# 调试程序用debug或更低的优先级,这样开发的时候可以尽量输出,方便调试.
# 正式部署之后,可以提高日志的级别,只输出关键信息
log4j.rootLogger=DEBUG,*,*,*,*......

# 定义A1输出到控制器
# ConsoleAppender:写到控制台
# FileAppender:写到指定的文件中
# DailyRollingFileAppender:把Log信息输出到按照日期来区分的文件中,每天产生一个log文件
# RollingFileAppender:文件大小到达指定尺寸的时候产生一个新的文件
# WriterAppender:将日志信息以流格式发送到任意指定的地方(需要配合代码进行,不常用)
# JDBCAppender:输出日志文件到数据库
# SMTPAppender:发送到指定邮箱
log4j.appender.*=org.apache.log4j.ConsoleAppender

# 定义A1的布局模式
# HTMLLayout:以HTML表格形式布局
# PatternLayout:可以灵活地指定布局模式,就是可以自定义输出样式
# SimpleLayout:包含日志信息的级别和信息字符串
# TTCCLayout:包含日志产生的时间、线程、类别等等信息
log4j.appender.*.layout=org.apache.log4j.PatternLayout

# 定义A1的输出格式
# %m 输出代码中指定的消息 
# %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
# %r 输出自应用启动到输出该log信息耗费的毫秒数 
# %t 输出产生该日志事件的线程名; 
# %n 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n" 
# %d 输出日志时间的日期或时间,默认格式为ISO8601,也可以在其后指定格式
# %c 输出所属的类目,通常就是所在类的全名,如“iNotes.Default”; 
# %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数 
# %L 输出代码中的行数; 
# %F 输出代码中的文件名; 
log4j.appender.*.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - [%p] - [%l] %m%n

 

标签:Log4j,appender,yyyy,详解,org,apache,layout,收藏,log4j
From: https://www.cnblogs.com/itartisans/p/17471491.html

相关文章

  • Linux日志切割神器logrotate原理介绍和配置详解
    1、原理介绍create这也就是默认的方案,可以通过create命令配置文件的权限和属组设置;这个方案的思路是重命名原日志文件,创建新的日志文件。详细步骤如下:重命名正在输出日志文件,因为重命名只修改目录以及文件的名称,而进程操作文件使用的是inode,所以并不影响原程序继续输出日志......
  • Android Handler 详解
    概述为了避免多个线程同时更新UI,导致不可预知的错误;所以现今几乎所有的GUI框架都只允许在主线程修改UI;因此这些框架都选择了消息驱动编程模型;消息驱动编程模型有以下几个组件:消息队列:存储待处理的消息分发器:将不同事件分发到不同的业务逻辑单元消息通道:分发器和处理器......
  • Linux中软连接详解
    Linux中软连接详解原创 weijishu 微技术之家 2023-06-0206:06 发表于上海Linux软连接详解 软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。换句话说,也可以理解成Windows中的快捷方式。linux创建软连接命令: ln-s[dir1]......
  • Redis两种持久化机制RDB和AOF详解
    redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(RedisDataBase)和AOF(AppendOnlyFile)。在这里假设你已经了解了redis的基础语法,某字母网站都有很好的教程,可以去看。基本使用的文章......
  • K8S-SidecarSet详解
    K8S-SidecarSetSidecarSet是Kubernetes的一个CRD(CustomResourceDefinition),扩展自DeploymentsAPIGroup,主要用于在Pod里注入一个或多个辅助容器(sidecarcontainer)。Sidecar容器是一种特殊的容器,它和主应用容器共享同一个网络、存储等资源,并在需要时协助主应用完成一些额外的......
  • git命令详解
    #首先进入到一个目录中。这个目录专门为gitlab使用。cd/data/gitlab#登录git仓库gitconfig--globaluser.name"用户名"#设置用户名gitconfig--globaluser.email"用户邮箱"#设置邮箱gitconfig--globaluser.name#查看用户名是否配置成功gitconfig--glo......
  • 我的收藏周刊063
    文章分享资本家也不想996,其实是迫于无奈呀从侧面谈谈996,即996的动机,有什么替代方案,不去996的好处,而不是一味的谈996如何不好,因为这个现象是多因素导致,不能孤立的看某一方面。什么是SR-TPSR-TP,MPLS-TP,SR-TE,SRV-BE,PTN,IPRAN这些技术之间有何联系,看看这篇文章。......
  • 【LeetCode.384打乱数组】Knuth洗牌算法详解
    前两天看网易面筋得知网易云的随机歌曲播放使用了这个算法,遂找题来做做学习一下打乱数组https://leetcode.cn/problems/shuffle-an-array/给你一个整数数组nums,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是等可能的。实现Solutionclass:Solution......
  • 内存池(MemPool)技术详解
    概述内存池(MemPool)技术备受推崇。我用google搜索了下,没有找到比较详细的原理性的文章,故此补充一个。另外,补充了boost::pool组件与经典MemPool的差异。同时也描述了MemPool在sgi-stl/stlport中的运用。经典的内存池技术经典的内存池(MemPool)技术,是一种用于分配大量大小相同的小对象的......
  • Python 解析配置模块之ConfigParser详解
      yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法。只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子:defaddlist(alist):foriinalist:yieldi+1取出alist的每一项,然后把i+1塞进去。然后通过......