导航:首页 > 净水问答 > log4jxml配置方式过滤包名

log4jxml配置方式过滤包名

发布时间:2021-03-04 07:14:17

❶ 如何通过配置log4j.xml来打印指定类或指定级别的日志信息


<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPElog4j:configurationSYSTEM"log4j.dtd"><log4j:configurationxmlns:log4j='http://jakarta.apache.org/log4j/'>
<!--appender部分是可用的日志输出方式定义,可以定义多个-->
<appendername="STDOUT"class="org.apache.log4j.ConsoleAppender">
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%l%d{ISO8601}--%p--%m%n"/>
</layout>
</appender>
<appendername="DEBUG"class="org.apache.log4j.RollingFileAppender">
<paramname="File"value="e:/logs/debug.log"/>
<paramname="Append"value="true"/>
<paramname="MaxFileSize"value="10000KB"/>
<paramname="MaxBackupIndex"value="50"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%l%d{ISO8601}--%p--%m%n"/>
</layout>
<filterclass="org.apache.log4j.varia.LevelRangeFilter">
<paramname="LevelMin"value="DEBUG"/>
<paramname="LevelMax"value="DEBUG"/>
</filter>
</appender>
<appendername="INFO"class="org.apache.log4j.RollingFileAppender">
<paramname="File"value="e:/logs/info.log"/>
<paramname="Append"value="true"/>
<paramname="MaxFileSize"value="10000KB"/>
<paramname="MaxBackupIndex"value="50"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%l%d{ISO8601}--%p--%m%n"/>
</layout>
<filterclass="org.apache.log4j.varia.LevelRangeFilter">
<paramname="LevelMin"value="INFO"/>
<paramname="LevelMax"value="INFO"/>
</filter>
</appender>
<appendername="WARN"class="org.apache.log4j.RollingFileAppender">
<paramname="File"value="e:/logs/warn.log"/>
<paramname="Append"value="true"/>
<paramname="MaxFileSize"value="10000KB"/>
<paramname="MaxBackupIndex"value="50"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%l%d{ISO8601}--%p--%m%n"/>
</layout>
<filterclass="org.apache.log4j.varia.LevelRangeFilter">
<paramname="LevelMin"value="WARN"/>
<paramname="LevelMax"value="WARN"/>
</filter>
</appender>
<appendername="ERROR"class="org.apache.log4j.RollingFileAppender">
<paramname="File"value="e:/logs/error.log"/>
<paramname="Append"value="true"/>
<paramname="MaxFileSize"value="10000KB"/>
<paramname="MaxBackupIndex"value="50"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%l%d{ISO8601}--%p--%m%n"/>
</layout>
<filterclass="org.apache.log4j.varia.LevelRangeFilter">
<paramname="LevelMin"value="ERROR"/>
<paramname="LevelMax"value="ERROR"/>
</filter>
</appender>


<appendername="WATCHTASK"class="org.apache.log4j.RollingFileAppender">
<paramname="File"value="e:/logs/watchtask.log"/>
<paramname="Append"value="true"/>
<paramname="MaxFileSize"value="10000KB"/>
<paramname="MaxBackupIndex"value="50"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%l%d{ISO8601}--%p--%m%n"/>
</layout>
<filterclass="org.apache.log4j.varia.LevelRangeFilter">
<paramname="LevelMin"value="INFO"/>
<paramname="LevelMax"value="INFO"/>
</filter>
</appender>

<!--category部分定义了特定包或者类的输出级别和方式,可以有多个-->
<categoryname="org.apache">
<priorityvalue="warn"/>
<appender-refref="WARN"/>
</category>

<!--打印日志到固定的文件中WATCHTASK选择自定义的日志级别设置-->
<categoryname="com.test.task.WatchTimerTask">
<priorityvalue="info"/>
<appender-refref="WATCHTASK"/>
</category>

<!--root部分定义了log4j的默认输出级别和方式-->
<root>
<priorityvalue="warn"/>
<appender-refref="INFO"/>
<appender-refref="WARN"/>
<appender-refref="ERROR"/>
<appender-refref="STDOUT"/>

</root>
</log4j:configuration>
(1).输出方式appender一般有5种:org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)org.apache.log4j.ConsoleAppender(控制台)??org.apache.log4j.FileAppender(文件)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)(2).日记记录的优先级priority,优先级由高到低分为OFF,FATAL,ERROR,WARN,INFO,DEBUG,ALL。Log4j建议只使用FATAL,ERROR,WARN,INFO,DEBUG这五个级别。(3).格式说明layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):%c输出所属类的全名%d输出日志时间其格式为%d{yyyy-MM-ddHH:mm:ss,SSS},可指定格式如%d{HH:mm:ss}%l?输出日志事件发生位置,包括类目名、发生线程,在代码中的行数%n换行符%m输出代码指定信息,如info(“message”),输出message%p输出优先级,即FATAL,ERROR等%r输出从启动到显示该log信息所耗费的毫秒数%t输出产生该日志事件的线程名

❷ log4j 后面加spring包名是什么意思

简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特专点就 可以配置文件灵活属的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。 Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信...

❸ 如何在web.xml配置log4j

<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.log4j.Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

最基本的这样的就版行权

❹ 在log4j中,怎样将一个filter设置进appender中去

一:使用log4j.xml
1.log4j.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<! log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j= akarta.ap ache.or g/log4j/'>

<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="/n[%r][%p][%t] %d{HH:mm:ss,SSS} method:%l/n%m%n"/>
</layout>
</appender>

<appender name="DEBUG" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="./logs/app-debug.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss},%m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="DEBUG"/>
</filter>
</appender>

❺ 如何在spring 配置文件中配置log4j.xml

比较基本的来:
#rootLogger是所有日自志的根日志,修改该日志属性将对所有日志起作用
#下面的属性配置中,所有日志的输出级别是info,输出源是console
log4j.rootLogger=info,console
#定义输出源的输入位置是控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
#定义输出日志的布局采用的类
log4j.appender.console.layout=org.apache.log4j.PatternLayout
#定义输出日志布局
log4j.appender.console.layout.ConversionPattern=%d%p[%c] - %m%n

❻ log4j能配置成按java中不同的package输出日子么

可以做到。
log4j可以根据不同包进行监听,并采用不同的策略。
相信你看一下log4j.xml就知道怎么用了

❼ log4j怎样配置才能打印出执行语句所在的类名及行号

Log4j 输出格式转换字符说明
=================
c category的名称,可使用{n}限制输出的版精度。例如:logger名为权"a.b.c",%c{2}将输出"b.c"。

C 产生log事件的java完全限定类名。可使用{n}限制输出的精度。例如:“org.apache.xyz.SomeClass”,%C{2}将输出“SomeClass”。

d 时间和日期的输出格式,例如:%d{yyyy MM dd HH:mm:ss,SS},可不带后面的日期格式字符。

❽ log4j.xml配置中<root>的作用

将logger中的 additivity 属性配置为 false,则这个logger不会将日志流反馈到root中。

可以达到以logger中配置的appender方式来输出日志而其他地方输出的目的,看配置:

	<appendername="DEMO"class="com.XXXXX.RollingFileAppender">
<paramname="file"value="${loggingRoot}/xxx.log"/>
<paramname="append"value="true"/>
<paramname="encoding"value="GB2312"/>
<paramname="threshold"value="info"/>
<paramname="MaxFileSize"value="50MB"/>
<paramname="MaxBackupIndex"value="10"/>
<layoutclass="org.apache.log4j.PatternLayout">
<paramname="ConversionPattern"value="%d[%X{requestURIWithQueryString}]%-5p%c{2}-%m%n"/>
</layout>
</appender>
<loggername="XXXX.XXXX.XXXX"additivity="false">
<levelvalue="${loggingLevel}"/>
<appender-refref="DEMO"/>
</logger>

root的作用是收集下面所有反馈上来的信息流并根据配置在root中appender进行输出,只要你在looger中配置了additivity="false",就不会反馈到root中。


另外这种问题可以先自己google或者下,有很多答案的。

❾ Slf4j + Logback 怎么过滤掉第三方包中的日志显示

其实这跟 Slf4J 通用日志框架没什么关系,单单是 Logback 的事,把 Slf4J 扯进来只因它们是对黄金组合。
我们在 log4j 中想要不显示第三方包的非常冗余的日志输出时,只要在 log4j.properties 中写上:

1

log4j.logger.org.hibernate=ERROR

这样在 hibernate 里的日志级别在 ERROR 以下的 TRACE、DEBUG、WARN 和 INFO 将不被输出,控制台会比较的干净。
Logback 的配置文件是 logback.xml,曾经在里面给 <appender> 加的 <pattern> 是:

1

<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>

logger 名显示 35 字符,类名优先显示全,类全限名超过总长度则取前面若干包名的首字母连接起来,于是产生了像下面那样的日志输出:
7937 [main] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Returning cached instance of singleton
7781 [main] DEBUG o.h.loader.entity.EntityLoader - Static select for entity
这在 Log4J 中是未曾见过的。当时还以为日志名就是 o.s.b.f 这样的东西,于是在 logback.xml 中用

1
2

<logger name="o.s.b" level="WARN"/>
<logger name="o.h" level="WARN"/>

这样的代码来进行封锁,根本就无济于事,大量的 spring、hibernate 的 DEBUG、INFO 等日志照样输出。这时惦记起 Logback 的 filter 功能来了,配置上:

01
02
03
04
05
06
07
08
09
10
11

<filter>
<evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
<expression><![CDATA[
event.getThreadName().contains("Catalina")
|| event.getLoggerName().contains("o.s.b.f")
|| event.getLoggerName().contains("o.h.")
]]></expression>
</evaluator>
<OnMismatch>NEUTRAL</OnMismatch>
<OnMatch>DENY</OnMatch>
</filter>

也是没有效果的。想来 Logback 与 Log4J 相比不会这么差劲的,再怎么也是出自一人之手,想来思路应是一致的,还是该回到 <logger> 的配置上来。
还是 Google 威武,找到答案了:logback per-logger configuration is not working。原来像 "o.s.b.f" 和 "o.h." 这样的东西只是神马浮云,假象而已,它们实际所代表的 logger 名并未变,分别是:
org.springframework.beans.factory.support.DefaultListableBeanFactory
org.hibernate.loader.entity.EntityLoader
所以呢,在 logback.xml 中像 Log4J 一样写上

1
2

<logger name="org.hibernate" level="WARN"/>
<logger name="org.springframework" level="WARN"/>

就把 Spring 和 Hibernate 的日志输出稍加过滤了,都是 %logger{35} 中的那个 {35} 惹的祸,不过也靠它多了解了一点东西。如果只写成 %logger 话那时候当然可以很快的解决问题的。

❿ 你好,能问一下,用log4j输出日志的话。怎么配置成过滤器呢,也就是只要登录的我就输出所有的action的日志

在action的配置中配置拦截器,在拦截器里获取参数记录日志

阅读全文

与log4jxml配置方式过滤包名相关的资料

热点内容
液相用溶剂过滤器 浏览:674
纳滤水导电率 浏览:128
反渗透每小时2吨 浏览:162
做一个纯净水工厂需要多少钱 浏览:381
最终幻想4回忆技能有什么用 浏览:487
污水提升器采通 浏览:397
反渗透和不发渗透净水器有什么区别 浏览:757
提升泵的扬程 浏览:294
泽德提升泵合肥经销商 浏览:929
饮水机后盖漏水了怎么办 浏览:953
小型电动提升器 浏览:246
半透膜和细胞膜区别 浏览:187
废水拖把池 浏览:859
十四五期间城镇污水处理如何提质增效 浏览:915
怎么测试空气净化器的好坏 浏览:519
提升泵是干嘛的 浏览:744
布油做蒸馏起沫咋办 浏览:252
广州工业油烟净化器一般多少钱 浏览:204
喜哆哆空气净化器效果怎么样 浏览:424
油烟净化器油盒在什么位置 浏览:582