log4j2 配置文件
2015-10-12 16:11
477 查看
首先pom文件如下
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion> <groupId>com.javacodegeeks.snippets.enterprise</groupId> <artifactId>log4jexample</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.0.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.0.2</version> </dependency> </dependencies> </project>
然后是log4j2.xml文件
<?xmlversion="1.0"encoding="UTF-8"?> <configurationstatus="OFF"> <appenders> <Consolename="Console"target="SYSTEM_OUT"> <PatternLayoutpattern="%d{HH:mm:ss}[%t]%-5level%logger{36}-%msg%n"/> </Console> <Properties> <Propertyname="log-path">D:/软件/workspaceForWeb/Test</Property> </Properties> <RollingFilename="WroxFileAppender"fileName="${log-path}/myexample.log"filePattern="${log-path}/myexample-%d{yyyy-MM-dd}-%i.log"> <PatternLayout> <pattern>%d{dd/MMM/yyyyHH:mm:ss,SSS}-%c{1}:%m%n</pattern> </PatternLayout> <Policies> <SizeBasedTriggeringPolicysize="1KB"/> </Policies> <DefaultRolloverStrategymax="4"/> </RollingFile> </appenders> <Loggers> <Rootlevel="trace"> <AppenderRefref="Console"/> </Root> <loggername="com.wrox"levels="info"additivity="false"> <appender-refref="RollingFile"/> <appender-refref="Console"> <!--下变是个filter,说明了可以loggertoconsoleappender,butonlyforeventcontainingaMarkernamedEROX_CONSOLE--> <MarkerFiltermarker="WORK_CONSOLE"onMathc="NEUTRAL"onMIsmath="DENY"/> </appender-ref> </logger> <Loggername="yourLogger"level="debug"additivity="false"> <AppenderRefref="Console"/> </Logger> </Loggers> </configuration>需要说明几点:
0、首先注意configuration的status--loggingsystem本身的message,
记录日志系统本身的log,叫做StatusLogger,目的是logeventsoccurringwithinehloggingsystemitself,比如说你建立了一个socketAppender然后目的网路不可到达这个日志就记录再次,利用StatusLogger,默认设置是OFF,也就是suppressesalltheloggingsystemmessage。1、首先在appender中配置rollthelog---RollingFile
rolllog发生的时机是
thelogreachingacertainsize;比如这里10mthedatachanging;thesupplicationstarting;3者中的任意组合2、logger中的markerfiler:
下变是个filter,说明了可以loggertoconsoleappender,butonlyforeventcontainingaMarkernamedEROX_CONSOLE3、注意日志格式:PatternLayout
%lprintstheclass,method,fileandlinenumberwheretheloggingmessageoccurred4、关于logger继承关系
4.1、默认子logger是继承父亲的iftherootloggerisassignedtoaconsoleAppenderandcom.wroxisassignedtofileAppender,logmessageswrittentocom.wrox,com.wrox.chatandothersgotoboththeconsoleandthefile,whereaslogmessageswrittentorootorcom.example.testgoonlytotheconsole.4.2、可以关掉这个继承利用additivity,表示该节点以及子节点不会在继承该节点的的父亲节点了<loggername="com.wrox"levels="info"additivity="false"> <appender-refref="WroxFileAppender"/> <appender-refref="Console"> </appender-ref> </logger> 注意属性additivity,表示是否继承父亲属性com.wrox的属性additivity=false,那么com.wrox,com.wrox.chat,andothersgoonlytothefile,表示父继承关闭了 4.3、如果
rootloggerconsoleappender&&(com.wrox的additivity=false&&分配给tofileAppender)&&(com.wrox.shop的属性additivity=true&&hasasyslogappender),那么消息writtentocom.wrox.shop会去syslogandthefile,不会到console5、关于java中使用privatestaticfinalLoggerlog=LogManager.getLogger();log.error("");
相关文章推荐
- 真正的LazyLoad按需加载
- android host修改
- discuz3.2版本ucenter用户管理中心登陆问题解决办法
- PhpExcel中文帮助手册|PhpExcel使用方法
- 系统集成知识点整理(三)进度管理
- 第四周 项目五-猴子选大王
- The following classes could not be found - EditText (Change to android.widget.EditText, Fix Build Pa
- CentOS7 安装32位运行库——ia32-libs
- Oracle调用Java类
- MongoDB
- UINavigationController和页面间传值
- maven-war-plugin
- Linux基础(五)单任务,CPU利用率计算
- HTML Canvas 涂鸦
- 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距
- android进程相关的工具类AppUtils
- 二硫化铼(ReS2)的电子输运特性及逻辑器件研究进展
- 第4周项目3 单链表应用(1)
- (转)MotionEvent事件对象
- UVa11038 How Many O's?