log4j2的使用
预备知识
日志级别:log4j默认六个级别,即trace、debug、info、warn、error、fatal ,对应意味着该消息为追踪、调试、普通信息、警告、错误、严重错误。可以根据需要子定义其他级别。
实际操作
1、导入jar包
2、编写配置文件(记得要放在classpath下面,否则会找不到的)
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
<!-- appenders用于定义日志输出地appender-->
<appenders>
<!-- 日志输出地为控制台 -->
<Console name="Console" target="SYSTEM_OUT">
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
<!-- PatternLayout,用于定义输出的格式 ,以下:时间 线程名 日志级别左对齐占5格 logger名 消息 -->
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console> <!-- 日志输出地为文件 -->
<!--append="false",这个log每次运行程序会自动清空,适合临时测试用-->
<File name="log" fileName="log/test.log" append="false">
<!-- 没有定义过滤器,默认打印所有级别的信息 -->
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</File> <!-- 日志输出地为循环文件,即大于阈值则生成新的文件 -->
<!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
<SizeBasedTriggeringPolicy size="50MB"/>
</RollingFile>
</appenders> <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
<loggers>
<!-- 所有的logger会继承root的配置 -->
<root level="trace">
<appender-ref ref="RollingFile"/>
<appender-ref ref="Console"/>
</root>
</loggers> </configuration>
3、在代码中的实际运用
package com.zay;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.json.JSONException; import com.module.dao.MainDao; public class Test21 {
//效果和private static Logger logger = LogManager.getLogger(Test21.class.getName())一样。
//logger名为com.zay.Test21,会继承配置文件中root的配置
private static Logger logger = LogManager.getLogger(); public static void main(String[] args) throws JSONException{
//输出日志信息
logger.trace("追踪信息..");
logger.debug("调试信息..");
logger.info("普通信息..");
logger.warn("警告信息..");
logger.error("错误信息..");
logger.fatal("严重错误信息..");
}
}
4、查看运行效果
根据输出了日志文件
同时控制台打印信息如下
参考博文
Log4j 2使用教程 http://www.cnblogs.com/leo-lsw/p/log4j2tutorial.html
log4j2的使用的更多相关文章
- dubbox升级spring到4.x及添加log4j2支持
今天花了点时间,把dubbox依赖的spring从3.x升级成最新版的4.x了,其它一些依赖的组件也顺带升级了,同时dubbo支持的第三方日志组件居然没有log4j2,加了点代码也一并支持了,蛋疼的是 ...
- 聊一聊log4j2配置文件log4j2.xml
一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方 ...
- 使用Slf4j集成Log4j2构建项目日志系统的完美解决方案
一.背景 最近因为公司项目性能需要,我们考虑把以前基于的log4j的日志系统重构成基于Slf4j和log4j2的日志系统,因为,使用slf4j可以很好的保证我们的日志系统具有良好的兼容性,兼容当前常见 ...
- log4j2.xml实用例子
一个多月前,我写了篇关于log4j.xml配置的文章,点击此处查看:http://www.cnblogs.com/guogangj/p/3931397.html 最近,我把自己的log4j升级到2.0 ...
- log4j2 不使用配置文件,动态生成logger对象
大家平时使用Log4j一般都是在classpath下放置一个log4j的配置文件,比如log4j.xml,里面配置好Appenders和Loggers,但是前一阵想做某需求的时候,想要的效果是每一个任 ...
- Log4j2 - 配置
官方文档:http://logging.apache.org/log4j/2.x/index.html 1 概述 Log4j2的配置包含四种方式,其中3种都是在程序中直接调用Log4j2的方法进行配置 ...
- MyBatis - MyBatis使用log4j2显示sql和结果集
mybatis-config.xml <settings> <setting name="logImpl" value="LOG4J2" /& ...
- web项目 log4j2的路径问题
项目中用到log4j2记录日志,结果运行的时候总也不见log文件的产生. 查看官方文档得知,在web项目中使用log4j2需要加入log4j-web包 log4j2.xml <?xml vers ...
- 在java下使用log4j2记录日志
1.定义: log4j2 指log4j 2.X及以上版本 2.安装 log4j-core-xx.jarlog4j-api-xx.jarlog4j-web-xx.jar(web项目的需要引用) 3.配置 ...
- log4j2配置详解
1. log4j2需要两个jar log4j-api-2.x.x.jar log4j-core-2.x.x.jar .log4j和log4j2有很大的区别,jar包不要应错. 2. ...
随机推荐
- Read4096
Given API: int Read4096(char* buf); It reads data from a file and records the position so that the n ...
- JAVA程序设计 实验一
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 ...
- 【iCore3 双核心板_ uC/OS-III】例程十:消息队列
实验指导书及代码包下载: http://pan.baidu.com/s/1sleklm1 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- Apache Spark技术实战之4 -- 利用Spark将json文件导入Cassandra
欢迎转载,转载请注明出处. 概要 本文简要介绍如何使用spark-cassandra-connector将json文件导入到cassandra数据库,这是一个使用spark的综合性示例. 前提条件 假 ...
- windows下安装 sphinx 数据库全文搜索引擎
此次演示的环境是:win7系统,64位,php5.4.x,apache sphinx,斯芬克斯(英语不好的同学可以直接读这个音),意狮身人面像 特点:创建索引速度快,3分钟左右能创建100万条记录的索 ...
- 申请UAC权限Manifest文件
申请UAC 高级权限用, 同时不会影响系统风格 <?xml version="1.0" encoding="UTF-8" standalone=" ...
- Linux系统下安装MongoDB 指南
1.首先连接到Linux系统. 2.到MongoDB官网下载合适的MongoDB安装压缩包. 下载页面:https://www.mongodb.org/downloads#production. 这里 ...
- C# jquery webservices 跨域调用的问题解决方案
前台代码: <script src="js/jquery-1.9.1.min.js" type="text/javascript"></scr ...
- 我的面经(ing)
爱立信: C和C++区别 堆和栈的区别 多态性:类的继承 重载与重复声明的区别 大端和小端的概念 一个排序程序(任意) 三次握手过程,优点 为什么UDP没有三次握手 TCP,UDP的区别 五层协议,各 ...
- Java学习-048-插件应用之 Find Bugs
FindBugs 是一个静态分析工具,它可以检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题,使用 FindBugs 可以在不实际运行程序的情况对软件进行分析.使用时最好将字节 ...