`

slf4j log4j配置 log4j过滤

阅读更多

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-log4j12-1.7.7.jar下载

    SLF4J的配置主要是通过Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)来完成的。这个配置文件定义了日志记录的行为,包括日志级别(DEBUG, INFO, WARN, ERROR, FATAL等)、输出目的地(控制台、文件、...

    slf4j-log4j12-1.5.6.jar

    SLF4J (Simple Logging Facade for Java) 是一个用于各种日志框架的简单抽象,例如java.util.logging、Logback 和 Log4j。它的主要目的是为应用程序提供一个可插入的日志接口,允许最终用户在部署时插入所需的日志库...

    slf4j+log4j

    SLF4J(Simple Logging Facade for Java)和Log4j是Java开发中常用的日志处理框架。SLF4J提供了一个抽象层,允许开发者在运行时插入所需的日志实现,而Log4j则是一个具体的日志实现,以其强大的功能和灵活性著称。...

    slf4j-log4j12-1.5.5.jar、slf4j-log4j12-1.5.6.jar、slf4j-api-1.5.6.jar

    这两个版本都用于将SLF4J的日志请求路由到Log4j框架中,这样开发者就可以使用SLF4J简洁的API,同时享受到Log4j丰富的配置和强大的日志处理能力。 Log4j是Apache的一个开源项目,它为Java应用程序提供了灵活且强大的...

    slf4j+log4j2配置使用

    接下来,将详细介绍SLF4J和Log4j2的配置使用。 ### SLF4J与Log4j2的配合使用 在Spring Boot项目中,可以使用SLF4J作为日志门面,通过Log4j2实现日志记录。首先需要在项目中排除Spring Boot默认的日志实现(即...

    android slf4j log4j日志框架

    虽然SLF4J不直接使用Log4j,但可以通过桥接器将SLF4J的调用转发到Log4j,这样可以利用Log4j的高级特性,如自定义日志级别、日志文件滚动、过滤器和布局模板等。不过,在Android中直接使用Log4j并不常见,因为它的...

    日志 log4j-slf4j+logback1.3.0

    6. slf4j-log4j12.jar:SLF4J到Log4j的适配器,使得SLF4J的日志请求可以被Log4j处理。 总的来说,"log4j-slf4j+logback1.3.0"的组合提供了一个强大、灵活的日志解决方案,允许开发者使用统一的API进行日志记录,...

    slf4j-log4j12-1.6.1.jar+slf4j-api-1.6.1.jar

    Log4j是Apache组织开发的一个广泛使用的日志框架,它提供了丰富的配置选项,可以控制日志的输出格式、存储位置、日志级别,甚至可以实现日志的远程传输和过滤。 在整合SSH或MVC项目时,引入这两个jar文件有以下步骤...

    slf4j-log4j12-1.5.8.jar.zip

    "slf4j-log4j12-1.5.8.jar.zip"这个压缩包包含了SLF4J与Log4j 1.2版本的适配器,版本号为1.5.8。 SLF4J的工作原理是通过桥接器(Binder)将应用程序中的SLF4J日志调用转换为实际日志框架的调用。在这个例子中,"slf...

    JavaEE slf4j转log4j的小示例

    Log4j提供了许多高级特性,比如自定义日志文件路径、日志归档策略(按日期、大小等)、过滤器、布局和转换器等。你可以根据项目需求进行配置。 通过这个小示例,你应该了解了如何在JavaEE项目中将SLF4J与Log4j集成...

    log4j-slf4j-impl.zip

    "Log4j-slf4j-impl.zip"这个压缩包中包含的是Log4j对SLF4J接口的实现,即"log4j-slf4j-impl-2.11.2.jar"。SLF4J提供了一组API,允许开发者编写与具体日志库无关的日志代码。而Log4j-SLF4J-Impl则是SLF4J的一个绑定,...

    slf4j-api-1.6.1.jar+slf4j-log4j12-1.6.1.jar+log4j-1.2.17.jar

    SLF4J(Simple Logging Facade for Java)是Java中的一种日志门面,它提供了一个统一的日志接口,使得开发者能够选择合适...在实际项目中,应根据项目需求和安全考虑选择合适版本的SLF4J和Log4j,并合理配置日志策略。

    slf4j-log4j12-1.7.5.jar的源码

    这个类是SLF4J API与Log4j 1.2之间的桥梁,它会自动寻找`log4j.properties`或`log4j.xml`配置文件,并创建相应的`Logger`实例。 3. **适配器**:`org.apache.log4j`包下的类是SLF4J API与Log4j API之间的适配器,...

    slf4j日志,可以使用它代替LOG4J

    SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它的设计目的是为各种日志框架提供一个统一的接口,使得开发者可以在不改变代码的情况下切换不同的日志实现,比如从Log4j切换到Logback,或者...

    hibernate3.3.1接口实现包 slf4j-log4j12-1.5.2

    SLF4J-Log4j12-1.5.2是SLF4J的一个绑定实现,意味着它将SLF4J的日志调用转发给Log4j1.2框架处理。Log4j12是Log4j的一个较新版本,提供了更高效、更灵活的日志记录,包括自定义布局、过滤器和Appenders,以及支持日志...

    slf4j-all-log4j12-1.4.3.jar

    SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它提供了一个API,允许开发者选择自己偏好的日志框架,如Log4j、Java Util Logging、Logback等。SLF4J的主要目的是为了简化日志处理,使得在不同...

    SLF4J+Log4J

    Log4j是Apache的一个开源项目,它提供了丰富的日志功能,包括配置文件支持、日志级别控制、日志输出格式定制、多个输出目的地(如控制台、文件、网络、数据库等)以及过滤机制。`log4j-1.2.x.jar`是Log4j的核心库,...

    slf4j-api-1.6.1-slf4j-nop-1.6.1.rar

    1. **桥接器**: SLF4J提供了桥接器(如log4j-over-slf4j),使得其他日志框架如Log4j、java.util.logging等可以通过SLF4J接口进行调用。 2. **选择绑定**: 开发者可以通过在类路径中包含特定的日志实现JAR来选择使用...

Global site tag (gtag.js) - Google Analytics