log4j的Appenders配置
因为是刚开始使用log4j,很多配置方面的东西都不懂,记录下。
下面是我用STS(Spring Tool Suite)新建Spring MVC项目的时候,帮我自动生成的一个log4j.xml配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender> <!-- Application Loggers -->
<logger name="com.shanshan.test">
<level value="info" />
</logger> <!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="info" />
</logger> <logger name="org.springframework.beans">
<level value="info" />
</logger> <logger name="org.springframework.context">
<level value="info" />
</logger> <logger name="org.springframework.web">
<level value="info" />
</logger> <!-- Root Logger -->
<root>
<priority value="warn" />
<appender-ref ref="console" />
</root> </log4j:configuration>
我要说的就是Appenders中的配置内容
输出方式:
org.apache.log4j.ConsoleAppender | 控制台 |
org.apache.log4j.FileAppender | 文件 |
org.apache.log4j.DailyRollingFileAppender | 每天产生一个日志文件 |
org.apache.log4j.RollingFileAppender | 文件大小到达指定尺寸的时候产生一个新的文件 |
org.apache.log4j.WriterAppender | 将日志信息以流格式发送到任意指定的地方 |
PatternLayout配置:
配置 |
说明 | 举例 | ||
%c | 输出所属的类目,通常就是所在类的全名。后面还可以带一个十进制的参数,限制输出类目的层级,默认输出完整类目。 | %c | org.apache.log4j.PatternLayout | |
%c{2} | log4j.PatternLayout | |||
%C | 调用logger的类的类目。后面还可以带一个十进制的参数,限制输出类目的层级,默认输出完整类目。 | %C | org.apache.log4j.PatternLayout | 处理较慢,谨慎使用 |
%C{1} | PatternLayout | |||
%d | 输出日志记录的时间,后面可以带日期格式的参数,参数编码默认为ISO8601,日期格式参考SimpleDateFormat | %d | 2017-04-18 09:23:56,561 | |
%d{yyyy-MM-dd HH:mm:ss SSS} | 2017-04-18 09:23:56 561 | |||
%d{ABSOLUTE} | 09:23:56,561 | |||
%d{DATE} | 18 四月 2017 09:23:56,561 | |||
%d{ISO8601} | 2017-04-18 09:23:56,561 | |||
%F | 显示调用logger的源文件名 | HomeController.java | 处理较慢,谨慎使用 | |
%l | 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数 | com.shanshan.bo.HomeController.border(HomeController.java:155) | ||
%L | 显示调用logger的代码行数 | 处理较慢,谨慎使用 | ||
%m | 输出代码中指定的信息 | |||
%M | 显示调用logger的方法名 | main | 处理较慢,谨慎使用 | |
%n | 当前系统下的换行符 | |||
%p | 显示该条日志的优先级 | INFO | ||
%r | 显示从程序启动时到记录该条日志时已经经过的毫秒数 | |||
%t | 输出产生该日志事件的线程名 | tomcat-http--38 | ||
%x | 按NDC(Nested Diagnostic Context,线程堆栈)顺序输出日志 | |||
%X | 按MDC(Mapped Diagnostic Context,线程映射表)输出日志。通常用于多个客户端连接同一台服务器,方便服务器区分是那个客户端访问留下来的日志。 | |||
%% | 输出一个百分号 |
通用格式配置:
配置 | 对齐方式 | 最小长度 | 最大长度 | 说明 |
%20c | right | 20 | 若名字空间长度小于20,则左边用空格填充 | |
%-20c | left | 20 | 若名字空间长度小于20,则右边用空格填充 | |
%.30c | 30 | 若名字空间长度超过30,截去多余字符 | ||
%20.30c | right | 20 | 30 | 若名字空间长度小于20,则左边用空格填充;若名字空间长度超过30,截去多余字符 |
%-20.30c | left | 20 | 30 | 若名字空间长度小于20,则右边用空格填充;若名字空间长度超过30,截去多余字符 |
log4j的Appenders配置的更多相关文章
- (转)log4j(六)——log4j.properties简单配置样例说明
一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 (1)使用配文件的方式,是不是感觉非常的清爽,如果不在程序中读取配置文件就更加的清 ...
- Log4j – Configuring Log4j 2 - Log4j 2的配置
Configuration Inserting log requests into the application code requires a fair amount of planning an ...
- Log4j 日志操作包配置详解
log4j简介 Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护 ...
- log4j日志基本配置
Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松 ...
- log4j使用和配置详解
日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录.以下是个人经验,具体请参考Log4j文档指南. Log4j下载 在apache网站:htt ...
- Activiti中的log4j(slf4j)的配置
今天试了一下在Activiti中使用log4j来进行配置发现这个会出现问题,其实Activiti中的日志系统是采用的是slf4j而不是log4j 然后使用slf4j驱动log4j来做的 通过Proce ...
- Maven项目引入log4j的详细配置
注:本文来源于 _xiaoxiong <Maven项目引入log4j的详细配置> 引入log4j pom.xml <dependency> <groupId>lo ...
- Java log4j slf4j 日志配置笔记
http://www.cnblogs.com/Scott007/p/3269018.html 日志的打印,在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender, ...
- Log4j1的使用与log4j.properties的配置
这里介绍Log4j1(即Log4j 1.x版本),这里以普通的Java项目为例,用eclipse编写,项目结构如下图所示: 该项目主要包括: java文件:Log4jv1Util 以及 Log4jv1 ...
随机推荐
- checkSelfPermission 找不到 Android 动态权限问题
checkSelfPermission 找不到 Android 动态权限问题 最近写了一个Demo,以前好好地.后来手机更新了新系统以后,不能用总是闪退.而且我的小伙伴的是android 7.0系统 ...
- Mac 上的 outlook 一直让输入密码
Mac 上的 outlook 即便输入了正确的密码,依然提示密码错误,让重新输入,需要输入多遍之后才能连上服务器. 出现这个问题的原因可能是证书过期了. 解决方式如下: 1.找到 2. 删掉 Exch ...
- [LeetCode] Trapping Rain Water II 题解
题意 题目 思路 我一开始想的时候只考虑到一个结点周围的边界的情况,并没有考虑到边界的高度其实影响到所有的结点盛水的高度. 我们可以发现,中间是否能够盛水取决于边界是否足够高于里面的高度,所以这必然是 ...
- CrawlScript脚本语言实现网络爬虫
前段时间我们学习了几种爬虫技术,我们来回顾一下,webCollector,htmlParser,Jsoup,各有优劣,但是如果能灵活运用,其实都是很不错的.那么,今天呢,我们来学习一种脚本语言,这是一 ...
- Linux系统文件的三个重要时间详解
Linux文件三个时间的查看 Linux下使用命令stat获取文件的三个时间,先看现象 各个时间的含义: Chang time:简称ctime,一个文件或目录的更改时间.在Linux中,基本上无法知道 ...
- 区分 点操作符+属性名 和 getAttribute()
在用DOM操作控制HTML时,很多初学者会把 点操作符+属性名 与getAttribute("属性名") 混淆,误以为这两种方法是等价的. 实际上, 通过getAttribute( ...
- git 入门宝典
本篇教程是按照我自己的组织方式,然后从多篇教程中拼凑出来的,嘎嘎~,真佩服自己的技术! 原本想叫 git 宝典的,结果一查git的命令大全,还有那么多的git命令与功能没有接触到,所以...还是谦虚一 ...
- PRINCE2 有级别吗?
PRINCE2是分级别的,有基础级和专业级两个级别 Foundation基础级考试没有报考条件限制, 完全根据学员掌握知识的能力和实际工作经验 Practitioner 专业级考试不可越级 1.持有P ...
- Android实战(一)学习了多个控件实现登录及记住密码功能
首先确定一下需要的控件: 两个EditText:用于输入账号和密码 一个button:用于登录查看账号和密码是否正确 一个checkbox:用于记住密码和账户 一个Androidstudio:用于编写 ...
- 老李推荐:第5章6节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 初始化事件源
老李推荐:第5章6节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 初始化事件源 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试 ...