1.使用log4j2需要下载包,如下:

2.配置文件可以有三种格式(文件名必须规范,否则系统无法找到配置文件):

  1. classpath下名为 log4j-test.json 或者log4j-test.jsn文件
  2. classpath下名为 log4j2-test.xml
  3. classpath下名为 log4j.json 或者log4j.jsn文件
  4. classpath下名为 log4j2.xml

3.日志记录有两种方法:

    1.static Logger logger = LogManager.getLogger(MyApplication.class.getName());

    2.private static Logger logger = LogManager.getLogger("MyApplication");

4.我用的xml的配置,所以介绍一下xml配置:

  1.首先要配几个要用到的appender,这些appender功能不一样,比如有常规输出,重大异常输出,你可能需要他们输出形式或者输出的文件不同,这些都可以在appender中配置

  2.appender里面的一些配置说明:

    name:appender的名称
    fileName:输出文件和名称
    append:是否追加,true表示追加内容到所在的日志,false表示每次都覆盖
    filePattern:表示当日志到达指定的大小或者时间,产生新日志时,旧日志的命名路径
    PatternLayout:指定输出日志的格式,具体代表的意思见前面的博客中
    Policies:策略,表示日志什么时候应该产生新日志,可以有时间策略和大小策略等
    ThresholdFilter :过滤器,log4j2中有很多的filter
  3.接下来配置logger,指定哪些类进行何种输出,这个比较简单,可以直接看栗子:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="1" status="ERROR" strict="true" name="LogConfig">
<Properties>
<Property name="logbasedir">e:/log</Property>
<Property name="log.layout">%d %-5p %t (%c:%L) - %m%n</Property>
</Properties> <--此处使用了两种类型的appender,RollingFile为滚动类型,满足策略条件后会新建文件夹记录 -->
<Appenders>
<Appender type="Console" name="STDOUT">
<Target>SYSTEM_OUT</Target>
<Layout type="PatternLayout" pattern="${log.layout}"/>
</Appender>
<Appender type="RollingFile" name="FILE" fileName="${logbasedir}/jutap-${sys:APPNAME}.log"
filePattern = "${logbasedir}/jutap-${sys:APPNAME}-%d{yyyy-MM-dd}.%i.log">
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<Layout type="PatternLayout">
<Charset>GBK</Charset>
<Pattern>${log.layout}</Pattern>
</Layout>
</Appender>
<Appender type="RollingFile" name="ExceptionLog" fileName="${logbasedir}/exception-${sys:APPNAME}.log"
filePattern = "${logbasedir}/exception-${sys:APPNAME}-%d{yyyy-MM-dd}.%i.log">
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
<Layout type="PatternLayout">
<Charset>GBK</Charset>
<Pattern>${log.layout}</Pattern>
</Layout>
</Appender>
</Appenders> <Loggers>
<Logger name="exception" level="error" additivity="false">
<AppenderRef ref="ExceptionLog"/>
</Logger> <Root level="info">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="FILE"/>
</Root>
<Logger name="com.garfield.learn" level="debug"/>
<Logger name="com.garfield.learnp" level="info"/>
</Loggers> </Configuration>

done.

log4j2.xml配置及例子的更多相关文章

  1. log4j2.xml 配置

    动态生成日志, 日志路径: log4j2.xml 配置如下: <?xml version="1.0" encoding="UTF-8"?> < ...

  2. log4j2.xml配置使用

    jar包: log4j-api-2.10.0.jar log4j-core-2.10.10.jar log4j-1.2-api-2.10.0.jar log4j-slf4j-impl-2.10.10. ...

  3. SpringBoot—整合log4j2入门和log4j2.xml配置详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...

  4. log4j2.xml配置,导致启动报错

    项目中遇到问题,当使用tomcat启动时,没问题:当使用内置tomcat启动时却报错,找不到日志路径. 变量位置: <properties> <property name=" ...

  5. 关于Spring的Quartz的xml配置的例子

    <span style="font-size:16px"></span><h3><span style="font-family ...

  6. log4j2.xml 的配置 及使用

     log4j2.xml配置 <?xml version="1.0" encoding="UTF-8"?> <Configuration > ...

  7. 聊一聊log4j2配置文件log4j2.xml

    一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...

  8. Ninject之旅之五:Ninject XML配置

    摘要 使用XML配置,需要添加Ninject XML扩展的引用.下一步是添加一个或多个包含类型注册的XML文件.记得这些文件应该跟应用程序一起发布.因此不要忘记将XML文件的属性设置成“Copy if ...

  9. Ehcache3.4 XML配置硬盘存储

    最近开始学习使用Ehcache, 3.4的文档实在过于简单,尤其是对于XML配置,例子太少.相对于硬编码,我更偏爱灵活的XML配置,为了实现xml配置,摸索了两天,终于运行成功. ehcache.xm ...

随机推荐

  1. 5. Java反射机制

    Java反射机制   问题: 在运行时,对一个JAVA类,能否知道属性和方法:能否调用它的任意方法? 答案是可以的,JAVA提供一种反射机制可以实现. 目录 什么是JAVA的反射机制 JDK中提供的R ...

  2. highstock

    $(function () { $.getJSON('http://www.hcharts.cn/datas/jsonp.php?filename=aapl-ohlcv.json&callba ...

  3. iOS之多线程NSOperation

    目前在 iOS 和 OS X 中有两套先进的同步 API 可供我们使用:NSOperation 和 GCD .其中 GCD 是基于 C 的底层的 API ,而 NSOperation 则是 GCD 实 ...

  4. erlang lists模块函数使用大全

    转自:http://qqdenghaigui.iteye.com/blog/1554541 一,带函数Pred1, all(Pred, List) -> boolean()如果List中的每个元 ...

  5. Linux openvswitch性能调优

    Increasing the flow-eviction threshold The threshold is a type of limit on the number of flows that ...

  6. C/C++语言的标准库函数malloc/free与运算符new/delete的区别

    概括地说 1.malloc与free是C++/C的标准库函数,new/delete是C++的运算符,它们都可用于申请动态内存和释放内存. 2.对于非内部数据类型的对象而言,只用malloc/free无 ...

  7. js导入的注意.txt

    如有两个外部js文件: jquery-1.8.2.min.js Jqery的系统文件 LYFArray.js 和个人的 ===============我要将两个js文件导入一个页面的方法:====== ...

  8. bat自动创建文件夹(以当前时间命名)

    先cmd中查看当前的日期和时间: @echo off color 0a set dt=%date%%time% echo %dt%pause 1.使用截取进行命名(时间为12小时制时命名会出现空格,不 ...

  9. VBS一键配置VOIP脚本(其中包括VBS操作JS网页中的按钮事件--直接执行确认按钮中的脚本代码)

    Dim ws,fso,IESet IE = WScript.createobject("InternetExplorer.Application")Set ws = WScript ...

  10. VC++中使用ADO方式操作ACCESS数据库

    ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为 ...