log4j:最传统的log框架,核心概念 Logger appender layout
commons-log:避免库实现者限制使用者的log实现,实现动态log绑定
slf4j:动态绑定有时会失败,或者不可控,slf4j使用静态绑定
logback:增强版的log4j,提供 配置扫描更新、占位符、运行时过滤器、处理IO异常……等功能
目前最佳搭配:slf4j logback
slf4j实现方式:org.slf4j.impl.StaticLoggerBinder由集成方实现
某个配置例子logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" scanPeriod="10 seconds">
<property name="APP_NAME" value="weitm-common" />
<property name="LOG_HOME" value="D:/workspace/common/log" />
<!--格式化输出:%d表示日期 {}中的格式满足java.text.SimpleDateFormat ,
%thread表示线程名,%-5level:级别从左显示5个字符宽度 的log等级 %msg:日志消息,%n是换行符
%logger{50} logger的名字,
%caller{3} 调用栈
%method 方法名
%line 行号
%relative 从应用开始到现在的相对时间(毫秒)
%xException 调用栈
property{key}
() 是分组
"%black", "%red", "%green","%yellow","%blue", "%magenta","%cyan", "%white", "%gray", "%boldRed","%boldGreen", "%boldYellow", "%boldBlue", "%boldMagenta""%boldCyan", "%boldWhite" and "%highlight"
-->
<property name="PATTERN" value="%-32(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{50}::%method:%line |%msg%n" />
<property name="DETAIL_PATTERN" value="%-32(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %relative) %-5level %logger{50}::%method:%line %n%caller%msg%n %xException %n" />
<contextName>${APP_NAME}</contextName>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${DETAIL_PATTERN}</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="file"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<append>true</append>
<file>${LOG_HOME}/${APP_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${LOG_HOME}/${APP_NAME}.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>${PATTERN}</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>1024MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- show parameters for hibernate sql 专为 Hibernate 定制 -->
<logger name="org.hibernate.type.descriptor.sql.BasicBinder"
level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor"
level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
<!--myibatis log configure -->
<logger name="com.apache.ibatis" level="TRACE" />
<logger name="java.sql.Connection" level="DEBUG" />
<logger name="java.sql.Statement" level="DEBUG" />
<logger name="java.sql.PreparedStatement" level="DEBUG" />
<root level="DEBUG">
<appender-ref ref="console" />
<appender-ref ref="file" />
<!-- <appender-ref ref="DEBUG"/> -->
</root>
</configuration>
相关推荐
Java后台框架集合是开发高效、稳定且可扩展的后端应用程序的重要工具箱。SpringMVC、Redis和Quartz是其中的三个关键组件,它们分别在不同的层面上为开发者提供了强大的支持。 SpringMVC是Spring框架的一个模块,...
`log4j`是由Apache组织开发的一个流行的日志框架,它提供了灵活的日志记录功能,可以根据不同的运行环境和需求调整日志级别、格式和输出目的地。`log4j`的核心概念包括Logger(日志器)、Appender(输出端)、Layout...
首先,log4j是Apache软件基金会的一个项目,它提供了一个灵活的日志框架,用于在Java应用程序中生成日志。log4j的核心概念包括Appender(输出目的地,如控制台、文件、数据库等)、Layout(格式化输出内容)和Logger...
Java中的Log4j 2日志框架是一款广泛应用于企业级应用开发的日志处理工具,它在Log4j 1.x的基础上进行了大量的优化和改进,提供了更高效、更灵活的日志记录功能。Log4j 2.23.0是其最新的稳定版本,包含了对性能、安全...
Java日志框架是Java开发中不可或缺的部分,它们用于记录应用...综上所述,Log4j和Logback都是强大的日志框架,它们在Java开发中扮演着重要角色。理解并熟练使用这些框架,可以帮助我们更好地监控和维护我们的应用程序。
**Java日志框架Log4j详解** 在Java编程中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态,定位错误,以及进行性能分析。Log4j是Apache组织开发的一个开源日志框架,它是Java日志处理领域的经典工具,...
Log4j是一个广泛使用的日志记录框架,而Apache Kafka则是一个分布式流处理平台,常用于实时数据传输。当我们需要将Log4j的日志实时地发送到Kafka时,可以借助Kafka提供的Log4jAppender实现这一功能。现在,我们详细...
JAVA日志框架适配-冲突解决方案 本文将对JAVA日志框架适配中可能出现的冲突进行分析和解决,涵盖日志框架的基本概念、常见的冲突原因和解决方案。 日志框架的基本概念: 在JAVA中,日志框架可以分为两种:日志...
本篇文章旨在详细介绍如何在Java中使用Log4j来管理日志,包括其配置方法以及与其他日志框架(如Commons Logging和JDK自带Logger)的对比。 #### 二、Jakarta Commons Logging (JCL) ##### 2.1 概述 Jakarta ...
Java开源博客系统框架B3log,其核心项目Solo,是一个专为程序员设计的高质量博客平台。 Solo基于Java语言开发,体现了Java在Web开发领域的强大功能和广泛应用。它以专业、简约、稳定和极速的特点,吸引了众多技术...
Java SSH 框架是Java开发中常用的三大框架——Spring、Struts 和 Hibernate 的组合,它们各自负责应用程序的不同层面,构建出高效、稳定的Web应用程序。这个最全的JAVA SSH包合集是为开发者,尤其是新手提供的一份...
Log4j是Java编程语言中广泛使用的日志记录框架,由Apache软件基金会开发。它提供了一种灵活且高效的方式来管理和记录应用程序的运行时信息,包括错误、警告、调试信息等。在本文中,我们将深入探讨Log4j的基本功能,...
Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...
### Java实训教程:Java软件开发实战与log4jdbc框架详解 #### 一、log4jdbc框架简介 在Java软件开发过程中,对SQL语句进行跟踪和调试是非常重要的一个环节。log4jdbc作为一款轻量级的SQL日志调试框架,能够帮助...
在Java开发过程中,为了实现日志管理,我们通常会使用如log4j2这样的日志框架。Log4j2是一个强大的、灵活的日志系统,它提供了丰富的配置选项和高性能的日志记录能力。当我们的应用程序需要将日志信息存储在数据库中...
通过这个`java关于log4j打印日志demo`,我们可以学习到如何配置和使用Log4j,理解其工作原理,以及如何在实际项目中有效地利用日志系统。实践这个示例将帮助你更好地掌握Java日志记录的最佳实践。
Java Log4j 是一个广泛使用的日志记录框架,它为Java应用程序提供了灵活且高效的日志管理。Log4j 提供了丰富的功能,包括配置日志级别、输出格式、日志目的地等,使得开发者可以方便地进行调试、监控和故障排查。在...
Log4j是Apache软件基金会开发的一个开源日志框架,它为Java应用程序提供了一个灵活且高效的日志系统。本文将深入探讨Log4j的基础应用,包括配置、日志级别、布局模式和实际使用场景。 首先,我们来看一下如何在Java...
**Java日志框架Log4j详解** 在Java编程中,日志记录是一项至关重要的任务,它可以帮助开发者跟踪程序运行过程中的错误、调试信息以及其他关键事件。Log4j是一款广泛使用的开源日志框架,由Apache软件基金会开发,为...