Log4j框架配置文件

                                   Log4j框架配置文件

1 Log4j的配置文件分类

Log4j支持两种配置文件格式:一中是以log4j.properties ,另一种是 log4j.xml

2 Log4j的配置文件例子

##自定义日志的输出级别log4j.rootLogger=WARN, stdout##自定义日志
log4j.logger.access=WARN, accesslog4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n### 输出到日志文件 ###
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = logs/test.log
log4j.appender.R.Append = true
log4j.appender.R.Threshold = DEBUG
log4j.appender.R.DatePattern = '.'yyyy-MM-dd-HH
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n### 业务日志###
log4j.appender.access = org.apache.log4j.FileAppender
log4j.appender.access.File =  logs/test.access.log
log4j.appender.access.Append = true
log4j.appender.access.layout = org.apache.log4j.PatternLayout
log4j.appender.access.layout.ConversionPattern = %m%n

3 Log4j的配置文件解析

(1)配置rootLogger

最重要就是第一个log4j.rootLogger,指定log4j日志的输出界别(目的地)

log4j.rootLogger=INFO,stdout,file意思为:日志可以输INFO级别以上的数据,将日志输出到stdout标准控制输出(控制台),输出到file

常见的日志输出级别:DEBUG(调试) < INFO(信息) < WARN(警告) < ERROR(错误) < FATAL(致命错误)

日志输出的顺序:和日志输出级别一致,即配置为一个级别,输出的内容只能是该级别及其以上级别的信息, INFO(输出的包括 INFO WARN ERROR FATAL),ERROR(ERROR FATAL), 所以,一般情况下:在开发,测试环境中,日志的级别为DEBUG;在生产环境中,日志级别为INFO

(2)配置日志信息输出目的地Appender

输出目的地:日志输出的各种各样的目的地,都是通过Appender来进行实现追加的,我们在appender中看到的PatternLayout的格式如下:

%m   输出代码中指定的消息

%n   输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

%p   输出优先级,即日志级别:DEBUG,INFO,WARN,ERROR,FATAL

%r   输出自应用启动到输出该log信息耗费的毫秒数

%c   输出所属的类目,通常就是所在类的全名

%t   输出产生该日志事件的线程名

%d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921

%l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 

ConsoleAppender,FileAppender,DailyRollingFileAppender,RollingFileAppender,WriterAppender(将日志信息以流格式发送到任意指定的地方)

ConsoleAppender(控制台)Threshold=WARN:指定日志消息的输出最低层次。 
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
Target=System.err:默认情况下是:System.out,指定输出控制台
DailyRollingFileAppender(每天产生一个日志文件)Threshold=WARN:指定日志消息的输出最低层次。 
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
File=mylog.txt:指定消息输出到mylog.txt文件。 
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
DatePattern=”.”yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。 
当然也可以指定按月、周、天、时和分。即对应的格式如下: 
1)”.”yyyy-MM: 每月 
2)”.”yyyy-ww: 每周 
3)”.”yyyy-MM-dd: 每天 
4)”.”yyyy-MM-dd-a: 每天两次 
5)”.”yyyy-MM-dd-HH: 每小时 
6)”.”yyyy-MM-dd-HH-mm: 每分钟
FileAppender(文件)Threshold=WARN:指定日志消息的输出最低层次。 
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
File=mylog.txt:指定消息输出到mylog.txt文件。 
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)Threshold=WARN:指定日志消息的输出最低层次。 
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 
File=mylog.txt:指定消息输出到mylog.txt文件。 
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。 
MaxFileSize=100KB:后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。 
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。
 
  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python面试总结(三)拷贝与通信

1.请写出下列结果&#xff1f;&#xff08;深拷贝与浅拷贝&#xff09; import copy a [1, 2, 3, 4, [a, b]] b a c copy.copy(a) d copy.deepcopy(a) a.append(5) a[4].append(c) print(a) print(b) print(c) print(d)# 答案如下&#xff1a; [1, 2, 3, 4, [a, b, c], 5] …

LeetCode 1615. 最大网络秩(出入度)

文章目录1. 题目2. 解题1. 题目 n 座城市和一些连接这些城市的道路 roads 共同组成一个基础设施网络。 每个 roads[i] [ai, bi] 都表示在城市 ai 和 bi 之间有一条双向道路。 两座不同城市构成的 城市对 的 网络秩 定义为&#xff1a;与这两座城市 直接 相连的道路总数。如果…

使用JSLint提高JS代码质量

随着富 Web 前端应用的出现&#xff0c;开发人员不得不重新审视并重视 JavaScript 语言的能力和使用&#xff0c;抛弃过去那种只靠“复制 / 粘贴”常用脚本完成简单前端任务的模式。JavaScript 语言本身是一种弱类型脚本语言&#xff0c;具有相对于 C 或 Java 语言更为松散的限…

Django工具:Git简介与基本操作

1.Git简介&#xff1a; 1.Git是目前世界上最先进的分布式版本控制系统 网址&#xff1a;http://github.com 2.总结git的两大特点&#xff1a; 版本控制&#xff1a;可以解决多人同时开发的代码问题&#xff0c;也可以解决找回历史代码的问题 分布式&#xff1a;Git是分布式…

用户画像系统应用

用户画像系统应用 1 用户信用等级分级 比如在银行根据分级决定给用户贷款的额度&#xff0c;以及贷款的时长&#xff0c;那么怎么对用户分级呢&#xff1f;首先收集大量用户的数据&#xff0c;包括基本属性信息以及用户在使用银行的借记卡&#xff0c;信用卡等等。如果是运营…

SVN或其他网盘类软件同步图标不显示的异常

因为Windows Explorer只支持15个ShellIcon显示 所以有些软件为了正常显示其同步状态&#xff0c;就会通过修改自己的ShellIcon名称来抢占这15个名额 只需在注册表中修改下他们的名称&#xff0c;并将所需要展示的Icon的名称顺序提前 重启Explorer进程即可&#xff1a; HKEY_L…

LeetCode 1616. 分割两个字符串得到回文串

文章目录1. 题目2. 解题1. 题目 给你两个字符串 a 和 b &#xff0c;它们长度相同。 请你选择一个下标&#xff0c;将两个字符串都在 相同的下标 分割开。 由 a 可以得到两个字符串&#xff1a; aprefix 和 asuffix &#xff0c;满足 a aprefix asuffix &#xff0c;同理&am…

Kafka基础

Kafka基础 1 消息队列 1.1 什么是消息队列 消息队列&#xff08;MQ&#xff09;&#xff1a;消息队列&#xff0c;保存消息的队列。消息的传输过程中的容器&#xff1b;主要提供生产、消费接口供外部调用做数据的存储和获取。 1.2 为什么要有消息队列 当网站面对教大的流量…

系统总结学习 Python 的 14 张思维导图

本文主要涵盖了 Python 编程的核心知识&#xff08;暂不包括标准库及第三方库&#xff09;。 首先&#xff0c;按顺序依次展示了以下内容的一系列思维导图&#xff1a;基础知识&#xff0c;数据类型&#xff08;数字&#xff0c;字符串&#xff0c;列表&#xff0c;元组&#x…

LeetCode 1617. 统计子树中城市之间最大距离(枚举所有可能+图的最大直径)

文章目录1. 题目2. 解题1. 题目 给你 n 个城市&#xff0c;编号为从 1 到 n 。同时给你一个大小为 n-1 的数组 edges &#xff0c;其中 edges[i] [ui, vi] 表示城市 ui 和 vi 之间有一条双向边。 题目保证任意城市之间只有唯一的一条路径。换句话说&#xff0c;所有城市形成了…

HighCharts解析之xAxis——x轴的样式

xAxis&#xff1a;x轴选项 参数 描述 默认值 allowDecimals 轴上的刻度是否允许使用小数 true alternateGridColor 当使用备用的网格颜色时&#xff0c;表格会各行变色 null categories x轴的名称。比如 categories: [Apples, Bananas, Oranges] [] dateTimeLabe…

MYSQL电脑客户端免安装教程以及出现问题解决方案

准备工作&#xff1a;window 7 64位旗舰版 MySQL 5.6.35免安装。 1. 下载MySQL 1.1 进入MySQL官网下载&#xff08;https://www.mysql.com/&#xff09;MySQL的安装包。 1.2. 根据自己电脑的位数(32位/64位)来下载响应的MySQL 、 2. 部署MySQL 2.1 解压压缩包到自己的某个盘…

Kafka高性能相关

Kafka高性能相关 1 高性能原因 1.1 高效使用磁盘 &#xff08;1&#xff09;顺序写磁盘&#xff0c;顺序写磁盘性能高于随机写内存 &#xff08;2&#xff09;Append Only 数据不更新&#xff0c;无记录级的数据删除&#xff08;只会整个segment删除&#xff09; &#xf…

Python面试总结(四)ip正则与三次握手四次挥手

1.请简述值传递和引用传递的区别&#xff1f;值传递仅仅传递的是值 引用传递&#xff0c;传递的是内存地址&#xff0c;修改后会改变内存地址对应储存的值。2.请手写一个匹配ip的正则表达式&#xff1f;第一种方法&#xff1a; ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\…

Android相关sdk使用

SimpleDateFormat使用详解 Android_AlertDialog 两分钟彻底让你明白Android Activity生命周期(图文)!Android布局控件之LinearLayout详解Relative Layout如何正确地使用android中的progressdialog android的Menu使用android Toast大全&#xff08;五种情形&#xff09;建立属于…

[Kaggle] Digit Recognizer 手写数字识别(卷积神经网络)

文章目录1. 使用 LeNet 预测1.1 导入包1.2 建立 LeNet 模型1.3 读入数据1.4 定义模型1.5 训练1.6 绘制训练曲线1.7 预测提交2. 使用 VGG16 迁移学习2.1 导入包2.2 定义模型2.3 数据处理2.4 配置模型、训练2.5 预测提交Digit Recognizer 练习地址 相关博文&#xff1a; [Hands …

SparkCore基础

目录 Spark简介 1 什么是Spark 2 Spark特点 3 Spark分布式环境安装 3.1 Spark HA的环境安装 3.2 动态增删一个worker节点到集群 4 Spark核心概念 5 Spark案例 5.2 Master URL 5.3 spark日志的管理 5.4 WordCount案例程序的执行过程 6 Spark作业运行架构图&#xff…

python面试总结(五)内存管理与MYSQL引擎选择

1.python是如何进行内存管理的&#xff1f;当内存中有不再使用的部分时&#xff0c;垃圾收集器就会把他们清理掉 Python引入了机制&#xff1a;引用计数与分代回收。 Python提供了对内存的垃圾收集机制&#xff0c; 但是它将不用的内存放到内存池而不是返回给操作系统。 2.谈…

Codeforces 374A - Inna and Pink Pony

原题地址&#xff1a;http://codeforces.com/contest/374/problem/A 好久没写题目总结了&#xff0c;最近状态十分不好&#xff0c;无论是写程序还是写作业还是精神面貌……NOIP挂了之后总觉得缺乏动力精神难以集中……CF做的也是一塌糊涂&#xff0c;各种pretest passed fail…

LeetCode 1320. 二指输入的的最小距离(动态规划)

文章目录1. 题目2. 解题1. 题目 二指输入法定制键盘在 XY 平面上的布局如上图所示&#xff0c;其中每个大写英文字母都位于某个坐标处&#xff0c; 例如字母 A 位于坐标 (0,0)&#xff0c;字母 B 位于坐标 (0,1)&#xff0c;字母 P 位于坐标 (2,3) 且字母 Z 位于坐标 (4,1)。 …