log4j2.xml
来源:互联网 发布:minecraft java 编辑:程序博客网 时间:2024/05/17 08:53
以前在项目中使用log4j日志,都是别人配置好或者直接网上粘贴代码过来…现在新公司做新系统,要求我配置log4j实现info级别按小时产生新的文件记录,error级别按天产生新的文件记录,所以这次也就好好的看了一下log4j,进入正题:
1、导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
2、配置文件:log4j2.xml (我的项目是springboot,很多项目在使用log4j.xml,只是格式不同,是一样的)。
3、文件详解:
<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" monitorInterval="30"><!-- Properties定义一些属性,下面可以引用 --> <Properties> <!-- 数据源名称,说明是哪个数据源下的,其实没啥用,可以不要 --> <Property name="PID">ecif_orgin</Property> <!-- 控制台日志的输出格式 --> <Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%wEx </Property> <!-- 日志存储的home目录 --> <property name="LOG_HOME">logs</property> <!-- error日志的文件名 --> <property name="ERROR_FILE_NAME">myError</property> <!-- warn日志的文件名 --> <property name="WARN_FILE_NAME">myWarn</property> <!-- info日志的文件名 --> <property name="INFO_FILE_NAME">myInfo</property> <!-- debug日志的文件名 --> <property name="DEBUG_FILE_NAME">myDebug</property> <!-- 以上定义了常用4个级别的日志文件,本项目只使用了error和info --> </Properties> <Appenders> <!-- console是控制台输出的日志,和存储在文件中的没关系 --> <Console name="Console" target="SYSTEM_OUT" follow="true"> <!-- 输出格式就是上面定义的 LOG_PATTERN--> <PatternLayout pattern="${LOG_PATTERN}"/> </Console> <!-- Info log --> <!-- info级别的日志输出到文件,fileName是当前最新的文件的目录和名字,filePattern是老文件的目录和名字 ,, 注意filePattern中的%d{yyyy-MM-dd-HH},精确到小时,说明按小时生成新文件,至于按几个小时生成,是下面的interval值决定--> <RollingFile name="InfoLog" fileName="${LOG_HOME}/${INFO_FILE_NAME}.log" filePattern="${LOG_HOME}/${INFO_FILE_NAME}/$${date:yyyy-MM-dd}/app-%d{yyyy-MM-dd-HH}-%i.log.gz" append="true"> <!-- 输出格式,这里没有在上面的properties中定义 --> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n"/> <!-- 设置策略 ,,interval="1"代表一个小时生成一个文件--> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> <!-- 过滤器 ,过滤掉不需要的级别--> <Filters> <!-- warn和warn以上的级别拒绝(DENY) --> <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/> <!-- info及info以上的级别接受 --> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> <!-- 以上两个过滤器组合,在日志文件中就只剩下info的了 一般onMatch和onMismatch都是以上面两种组合形式出现 有人说info一定要放在warn后面,否则info以上的级别在info中被接受后,就不会走warn的过滤器里,这个我没试过,感觉有道理 如果对log4j日志级别不清楚,一定要先弄清楚 --> </Filters> </RollingFile> <!-- 以下这个是按天生成error级别的 日志文件,就不详解了--> <RollingFile name="ErrLog" fileName="${LOG_HOME}/${ERROR_FILE_NAME}.log" filePattern="${LOG_HOME}/${ERROR_FILE_NAME}/$${date:yyyy-MM-dd}/app-%d{yyyy-MM-dd}-%i.log.gz" append="true"> <!-- 输出格式 --> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n"/> <!-- 设置策略 --> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> <Filters> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> </RollingFile> </Appenders> <Loggers> <Logger name="org.hibernate.validator.internal.util.Version" level="debug"/> <Logger name="org.hibernate.SQL" level="debug"/> <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn"/> <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn"/> <Logger name="org.apache.catalina.startup.DigesterFactory" level="error"/> <!-- 把上面定义的三个输出目标引用进来 --> <Root level="debug"> <AppenderRef ref="Console"/> <AppenderRef ref="ErrLog"/> <AppenderRef ref="InfoLog"/> </Root> </Loggers></Configuration>
以上是我按小时和天数来生成文件,,也可以按文件大小等等,方法是一样的。
阅读全文
1 0
- log4j2配置文件log4j2.xml
- log4j2配置文件log4j2.xml
- log4j2配置文件log4j2.xml
- log4j2.xml
- log4j2.xml
- log4j2.xml
- log4j2配置文件log4j2.xml解析
- 聊一聊log4j2配置文件log4j2.xml
- 聊一聊log4j2配置文件log4j2.xml
- 聊一聊log4j2配置文件log4j2.xml
- 聊一聊log4j2配置文件log4j2.xml
- log4j2.xml实用例子
- Log4j2.xml配置详解
- log4j2.xml配置文件详解
- log4j2.xml的完整
- log4j2 xml配置详解
- log4j2-thread.xml
- log4j2 xml配置调用
- Spark-Streaming的window滑动窗口及热点搜索词统计案例
- springMVC+spring+hibernate基础配置文件
- SQL SERVER运维日记--收缩数据库
- Mysql
- 上传更新后的文件 use scp
- log4j2.xml
- Ubuntu 安装 Sublime Text
- jq的html()、text()、val()的使用
- 分库分表需要考虑的问题及方案
- mybatis-generator自动生成代码
- hibernate基础知识
- PHP JSON数组与对象的理解
- Spark Streaming从Kafka中拉取数据,并且使用过“窗口函数”统计一些流量信息
- 23种设计模式(13)-策略模式