文档章节

log4J日志配置

iborder
 iborder
发布于 2016/12/12 23:42
字数 796
阅读 27
收藏 0
点赞 0
评论 0

Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。

使用log4j需要导入log4j-core-xx.jar和log4j-api-xx.jar

log4j1.x版本只需要导入一个jar包,通过一个*.properties 或 *.xml的文件作为主配置文件;

log4j2.x版本都要导入两个jar包,采用*.xml,*.json或者*.jsn文件作为配置文件;

在默认情况下,系统选择配置文件的优先级如下:

  1.  log4j-test.json 或 log4j-test.jsn文件
  2.  log4j2-test.xml
  3.  log4j.json 或 log4j.jsn文件
  4.  log4j2.xml

log4j1.x和log4j2.x两个版本使用有一些区别,下面主要讲解使用log4j2.x

Log4j最新版本是apache-log4j-2.7

Log4j由三个重要的组件构成:

日志级别(Logger):从高到低有FATAL、ERROR、WARN、 INFO、DEBUG、TRACE,分别用来指定这条日志信息的重要程度;

日志信息输出目的地(Appender):日志输出目的地可以是控制台、文件和网络设备等;

日志信息输出格式(Layout):控制了日志信息的显示内容。

1、配置文件

Log4j有默认的配置,日志级别是ERROR,输出到控制台

log4j2.xml(放在src目录下,运行时自动加载)

<?xml version="1.0" encoding="UTF-8"?>
<!-- Configuration节点的属性status,用于设置log4j自身内部运行日志输出(只输出到控制台),可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出 -->
<configuration status="OFF">
    <!--定义所有的appender-->
    <appenders>
        <!--配置输出控制台-->
        <Console name="Console" target="SYSTEM_OUT">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
            <!--这个都知道是输出日志的格式-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
        </Console>
        <!--打印出日志到文件,append属性设置为false,每次运行程序会自动先清空之前的日志-->
        <File name="error" fileName="log/error.log" append="false">
        	<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
        </File>

        <!--打印出日志到文件,单个日文件大小超过size指定的值,则该日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFile" fileName="log/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"/>
            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20. -->
            <DefaultRolloverStrategy max="20"/>
        </RollingFile>
    </appenders>
    <!--定义所有logger,appender引入到logger才会生效-->
    <loggers>
    <!-- 每个logger都有一个日志级别,用来控制日志的输出。未分配级别的logger将自动继承它最近的父logger的日志级别 -->
    	<!--
        	additivityz值为true,如果logger也满足root的条件,会出现打印两遍的情况。
        -->
        <logger name="cn.iborder.test.TestLog4j" level="trace" additivity="false">
            <appender-ref ref="Console"/>
            <appender-ref ref="error"/>
        </logger>
        <!--默认root的logger-->
        <root level="trace">
            <appender-ref ref="Console"/>
        </root>
    </loggers>
</configuration>

2、测试实例

package cn.iborder.test.page;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.Test;

public class TestLog4j {
	//通过指定的名字获得logger
	private static Logger logger = LogManager.getLogger(TestLog4j.class.getName());
	
	@Test
	public void test1() {
		logger.trace("trace级别");
		logger.debug("debug级别");
		logger.info("info级别");
		logger.warn("warn级别");
		logger.error("error级别");
		logger.fatal("fatal级别");
	}
}

 

© 著作权归作者所有

共有 人打赏支持
iborder
粉丝 4
博文 68
码字总数 48460
作品 0
揭阳
程序员
java 日志框架——log4j

Log4J是JAVA下的一款日志组件 下载: http://logging.apache.org/log4j/2.x/download.html 下面的示例我使用最新版本2.7无法正常运行,最新版本使用方法可能不同。本文示例使用log4j-1.2.15测...

xundh ⋅ 05/09 ⋅ 0

MyBatis3错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Priority的问题解决

在使用Maven新建QuitStart类型项目时,引入了MyBatis3.2.0版本的JAR包之后,出现如下错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Priority Cause......

easonjim ⋅ 2017/06/19 ⋅ 0

使用代码形式配置Log4J日志框架

一、使用代码形式配置Log4J日志框架 一般情况下,我们都是使用配置文件形式来配置Log4J日志框架,比如使用“log4j.properties”文件。但有些时候,我们只是想简单快速使用Log4J日志框架,配置...

郭恩洲_OSC博客 ⋅ 05/28 ⋅ 0

Java混乱的日志体系(logback)(转)

作为一名 Java 程序员,日常开发工作中肯定会接触日志系统,但是众多的框架,包括 Log4j、Log4j2、Logback、Slf4j、Apache Common logging 等等,引用的 maven 依赖众多,到底可以去掉哪些,...

easonjim ⋅ 2017/12/27 ⋅ 0

Log4j 2.0在开发中的高级使用详解

log4j与slf4j、logback比较 而log4j slf4j logback就是目前主流的日志框架。但后两者效率高是第一个。推荐使用:slf4j 或者 logback(spring-boot默认日志实现) log4j是apache实现的一个开源日...

spinachgit ⋅ 04/22 ⋅ 0

Java日志框架-logback的介绍及配置使用方法(纯Java工程)(转)

说明:内容估计有些旧,2011年的,但是大体意思应该没多大变化,最新的配置可以参考官方文档。 一、logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块...

easonjim ⋅ 2017/11/07 ⋅ 0

Spring MVC-集成(Integration)-集成LOG4J示例(转载实践)

以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_log4j.htm 说明:示例基于Spring MVC 4.1.6。 以下示例说明如何使用Spring Web MVC框架来触发LOG4J。首先,让我们使用...

easonjim ⋅ 2017/09/10 ⋅ 0

日志部分,项目使用,面试不面的

Log4j.properties配置详解 一、Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。...

u012557298 ⋅ 01/01 ⋅ 0

spring boot保存|打印日志-logback的配置和使用

【转载】(https://www.cnblogs.com/winner-0715/p/6105519.html) 1.logback介绍 logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback-classic和...

qq_25652949 ⋅ 04/24 ⋅ 0

log4j2配置文件log4j2.xml配置详解

原文链接:https://blog.csdn.net/zheng0518/article/details/69558893 一、背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置...

thekenofdis ⋅ 05/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部