slf4j log4j配置
1.需要的jar包:
log4j-api-2.0-rc2.jar
log4j-core-2.0-rc2.jar
log4j-slf4j-impl-2.0.jar
slf4j-api-1.6.4.jar
下载路径:http://mvnrepository.com/artifact/org.apache.logging.log4j
2.配置文件:log4j2.xml 放在src下(编译后自动复制到classes下)
<?xml version="1.0" encoding="UTF-8"?> <!-- status=debug 可以查看log4j的装配过程 --> <configuration status="off"> <properties> <property name="LOG_HOME">D:\\log\\proxy</property> <!-- 日志备份目录 --> <property name="BACKUP_HOME">{LOG_HOME}/backup</property> <property name="STAT_NAME">stat</property> <property name="SERVER_NAME">global</property> </properties> <appenders> <!-- 定义控制台输出 --> <Console name="Console" target="SYSTEM_OUT"> <Filters> <!-- 过滤日志级别 --> <!-- <ThresholdFilter level="TRACE" onMatch="NEUTRAL" onMismatch="DENY"/> --> <!-- 过滤内容匹配sss的日志 --> <!-- <RegexFilter regex=".*sss.*" onMatch="NEUTRAL" onMismatch="DENY"/> --> <!-- 过滤时间 --> <!-- <TimeFilter start="09:00:00" end="09:30:00" onMatch="ACCEPT" onMismatch="DENY"/> --> <!-- onMatch="NEUTRAL" 中性,也会经过其他过滤器,设置为ACCEPT则不会 --> </Filters> <PatternLayout charset="UTF-8" pattern="[%d{ISO8601}] %-5p %40c{2}:%-4.4L - %m%n" /> </Console> <RollingFile name="InfoLog" fileName="${LOG_HOME}/fc-proxy-log4j2.log" filePattern="${LOG_HOME}/fc-proxy-%d{yyyy-MM-dd}-%i.log"> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" /> <PatternLayout charset="UTF-8" pattern="[%d{ISO8601}] %-5p %40c{2}:%-4.4L - %m%n" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> <SizeBasedTriggeringPolicy size="200MB" /> </Policies> <DefaultRolloverStrategy max="10" /> </RollingFile> <RollingFile name="ErrorLog" fileName="${LOG_HOME}/fc-proxy-error-log4j2.log" filePattern="${LOG_HOME}/fc-proxy-error-%d{MM-dd-yyyy}-%i.log"> <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" /> <PatternLayout charset="UTF-8" pattern="[%d{ISO8601}] %5p %30c{1}:%4L - %m%n" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> <SizeBasedTriggeringPolicy size="500MB" /> </Policies> <DefaultRolloverStrategy max="10" /> </RollingFile> <Async name="Asynch" bufferSize="500000" blocking="false" includeLocation="true"> <appender-ref ref="Console" /> <appender-ref ref="InfoLog" /> <appender-ref ref="ErrorLog" /> </Async> </appenders> <loggers> <!--子log:指定只输出com.aa包中的logger, 忽略其他logger additivity="false" 不附加,子log不重复输出父log内容--> <Logger name="com.aa" level="trace" additivity="false"> <!-- 继承父log --> <AppenderRef ref="Asynch"/> </Logger> <Logger name="com.bb" level="trace" additivity="false"> <!-- 继承父log --> <AppenderRef ref="Asynch"/> </Logger> <Logger name="tc.com" level="trace" additivity="false"> <!-- 继承父log --> <AppenderRef ref="Asynch"/> </Logger> <!-- Root Logger --> <!-- <root level="INFO"> <AppenderRef ref="Asynch"/> </root> --> </loggers> </configuration>
以上注释为个人理解。
官方文档:http://logging.apache.org/log4j/2.x/manual/appenders.html
3. java实现:类名:TestServlet
package com.dahantc.test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @WebServlet("/TestServlet") public class TestServlet extends HttpServlet { private static Logger logger = LoggerFactory.getLogger(TestServlet.class); private static final long serialVersionUID = -6795168385294556128L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { logger.info("===============sss进入=============="); PrintWriter _write = resp.getWriter(); _write.print("22"); _write.flush(); _write.close(); logger.info("========end======="); } }
相关推荐
SLF4J的配置主要是通过Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)来完成的。这个配置文件定义了日志记录的行为,包括日志级别(DEBUG, INFO, WARN, ERROR, FATAL等)、输出目的地(控制台、文件、...
SLF4J (Simple Logging Facade for Java) 是一个用于各种日志框架的简单抽象,例如java.util.logging、Logback 和 Log4j。它的主要目的是为应用程序提供一个可插入的日志接口,允许最终用户在部署时插入所需的日志库...
SLF4J(Simple Logging Facade for Java)和Log4j是Java开发中常用的日志处理框架。SLF4J提供了一个抽象层,允许开发者在运行时插入所需的日志实现,而Log4j则是一个具体的日志实现,以其强大的功能和灵活性著称。...
这两个版本都用于将SLF4J的日志请求路由到Log4j框架中,这样开发者就可以使用SLF4J简洁的API,同时享受到Log4j丰富的配置和强大的日志处理能力。 Log4j是Apache的一个开源项目,它为Java应用程序提供了灵活且强大的...
接下来,将详细介绍SLF4J和Log4j2的配置使用。 ### SLF4J与Log4j2的配合使用 在Spring Boot项目中,可以使用SLF4J作为日志门面,通过Log4j2实现日志记录。首先需要在项目中排除Spring Boot默认的日志实现(即...
虽然SLF4J不直接使用Log4j,但可以通过桥接器将SLF4J的调用转发到Log4j,这样可以利用Log4j的高级特性,如自定义日志级别、日志文件滚动、过滤器和布局模板等。不过,在Android中直接使用Log4j并不常见,因为它的...
6. slf4j-log4j12.jar:SLF4J到Log4j的适配器,使得SLF4J的日志请求可以被Log4j处理。 总的来说,"log4j-slf4j+logback1.3.0"的组合提供了一个强大、灵活的日志解决方案,允许开发者使用统一的API进行日志记录,...
Log4j是Apache组织开发的一个广泛使用的日志框架,它提供了丰富的配置选项,可以控制日志的输出格式、存储位置、日志级别,甚至可以实现日志的远程传输和过滤。 在整合SSH或MVC项目时,引入这两个jar文件有以下步骤...
"slf4j-log4j12-1.5.8.jar.zip"这个压缩包包含了SLF4J与Log4j 1.2版本的适配器,版本号为1.5.8。 SLF4J的工作原理是通过桥接器(Binder)将应用程序中的SLF4J日志调用转换为实际日志框架的调用。在这个例子中,"slf...
Log4j提供了许多高级特性,比如自定义日志文件路径、日志归档策略(按日期、大小等)、过滤器、布局和转换器等。你可以根据项目需求进行配置。 通过这个小示例,你应该了解了如何在JavaEE项目中将SLF4J与Log4j集成...
"Log4j-slf4j-impl.zip"这个压缩包中包含的是Log4j对SLF4J接口的实现,即"log4j-slf4j-impl-2.11.2.jar"。SLF4J提供了一组API,允许开发者编写与具体日志库无关的日志代码。而Log4j-SLF4J-Impl则是SLF4J的一个绑定,...
SLF4J(Simple Logging Facade for Java)是Java中的一种日志门面,它提供了一个统一的日志接口,使得开发者能够选择合适...在实际项目中,应根据项目需求和安全考虑选择合适版本的SLF4J和Log4j,并合理配置日志策略。
这个类是SLF4J API与Log4j 1.2之间的桥梁,它会自动寻找`log4j.properties`或`log4j.xml`配置文件,并创建相应的`Logger`实例。 3. **适配器**:`org.apache.log4j`包下的类是SLF4J API与Log4j API之间的适配器,...
SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它的设计目的是为各种日志框架提供一个统一的接口,使得开发者可以在不改变代码的情况下切换不同的日志实现,比如从Log4j切换到Logback,或者...
SLF4J-Log4j12-1.5.2是SLF4J的一个绑定实现,意味着它将SLF4J的日志调用转发给Log4j1.2框架处理。Log4j12是Log4j的一个较新版本,提供了更高效、更灵活的日志记录,包括自定义布局、过滤器和Appenders,以及支持日志...
SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它提供了一个API,允许开发者选择自己偏好的日志框架,如Log4j、Java Util Logging、Logback等。SLF4J的主要目的是为了简化日志处理,使得在不同...
Log4j是Apache的一个开源项目,它提供了丰富的日志功能,包括配置文件支持、日志级别控制、日志输出格式定制、多个输出目的地(如控制台、文件、网络、数据库等)以及过滤机制。`log4j-1.2.x.jar`是Log4j的核心库,...
1. **桥接器**: SLF4J提供了桥接器(如log4j-over-slf4j),使得其他日志框架如Log4j、java.util.logging等可以通过SLF4J接口进行调用。 2. **选择绑定**: 开发者可以通过在类路径中包含特定的日志实现JAR来选择使用...