有关Log4j知识小结
log4j.rootLogger=debug, stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.err##或者System.out(默认)
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c %t:%L - %m%n
log4j.rootLogger=debug, stdout
配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
level:日志记录的优先级,分别为:OFF、FATAL、ERROR、WARN、INFO、DEBUG和ALL或者自定义的级别。Log4J建议只是用四个级别,优先级从高到低分别是:ERROR、WARN、INFO和Debug。通过在这定义级别,我们就可以控制应用程序中相应级别的日志信息的开关。例如:在这里定义了INFO级别,则应用程序中DEBUG级别的日志信息将不会被打印出来。
AppenderName:指定的日志信息输出到哪里。这里可以指定多个输出目的地。AppenderName可以自己定义。
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
配置日志信息输出地目的地Appender,其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
其中, fully.qualified.name.of.appender.class可以有五个选项:
1.org.apache.log4j.ConsoleAppender(控制台)
3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File = logs/log.log log4j.appender.file.Append = true log4j.appender.file.Threshold = Info log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern = %5p [%t:%r] %m %-d{yyyy-MM-dd HH:mm:ss} %n |
3.其他类似
log4j.rootLogger=Debug, file #log4j.appender.A=org.apache.log4j.ConsoleAppender #log4j.appender.A.layout=org.apache.log4j.PatternLayout #log4j.appender.A.layout.ConversionPattern=%5p [%t] (%F:%L) - %m %n log4j.appender.file = org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File = logs/log.html log4j.appender.file.Append = true log4j.appender.file.Threshold = debug log4j.appender.file.layout = org.apache.log4j.HTMLLayout |
ConversionPattern中打印参数含义:
Log4J 采用类似C 语言中的 printf 函数的打印格式格式化日志信息,如下:
%m 输出代码中指定的消息
%p 输出优先级,即 DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该 log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows 平台为“\r\n”,Unix 平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为 ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002 年10月 18 日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
Java小程序
import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class MyLog4J { static Logger logger = Logger.getLogger(MyLog4J. class .getName()); public static void main(String[] args) { PropertyConfigurator.configure( "./src/log4j.properties" ); logger.debug( "Hello World!" ); logger.info( "Hello China!" ); } } |
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决