学习笔记(06-01):轻松搞定Spring全家桶(初识篇)-Spring Framework-Log4J:Log4J配置文件详解

Log4J的配置文件是用来设置日志输出的级别、存放和布局的,它可以是key=value格式的设置或xml格式的设置信息。通过配置创建出Log4J的运行环境。
案例中的配置文件:/AOPProjectByAspectJAnnotation/resource/log4j.properties

LOG_DIR=H:\\StudyLogs
log4j.rootLogger=DEBUG, Console, FileInfo,FileError

log4j.appender.Console = org.apache.log4j.ConsoleAppender
log4j.appender.Console.Threshold = DEBUG
log4j.appender.Console.ImmediateFlush = true
log4j.appender.Console.Target = System.out
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l:%m%n


log4j.appender.FileInfo = org.apache.log4j.DailyRollingFileAppender
log4j.appender.FileInfo.Threshold = INFO 
log4j.appender.FileInfo.ImmediateFlush = true
log4j.appender.FileInfo.Append = true
log4j.appender.FileInfo.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.FileInfo.encoding = UTF-8
log4j.appender.FileInfo.File = ${LOG_DIR}/info
log4j.appender.FileInfo.layout = org.apache.log4j.PatternLayout
log4j.appender.FileInfo.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %-5p ]  %m%n

log4j.appender.FileError = org.apache.log4j.DailyRollingFileAppender
log4j.appender.FileError.Threshold = ERROR 
log4j.appender.FileError.ImmediateFlush = true
log4j.appender.FileError.Append = true
log4j.appender.FileError.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.FileError.encoding = UTF-8
log4j.appender.FileError.File = ${LOG_DIR}/error
log4j.appender.FileError.layout = org.apache.log4j.PatternLayout
log4j.appender.FileError.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %-5p ]  %m%n

配置详解:
一、第一行中:LOG_DIR=H:\StudyLogs
    设置一个环境变量,含义是log日志文件的存放目录,下边配置会用到
二、第二行:log4j.rootLogger=DEBUG, Console, FileInfo,FileError
#语法格式:

log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …

#含义:配置根Logger,第一个参数是级别,后面的是一些名字(可以随便起,有含义的好懂),接下来需要对这些名字进行配置内容。
三、后面三段是对这几个名字进行设置:这几个名字代表着日志信息输出目的地
#日志信息输出目的地Appender,其语法语法为:

log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1

log4j.appender.appenderName.option = valueN

  1. 第二段第一句:log4j.appender.Console = org.apache.log4j.ConsoleAppender表示向控制台输出。其中Log4j提供的appender有以下几种输出位置:
    》org.apache.log4j.ConsoleAppender(控制台),
    》org.apache.log4j.FileAppender(文件),
    》org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
    》org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
    》org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
  2. 第二句:log4j.appender.Console.Threshold = DEBUG表示往这个位置输出的级别,不能低于根Logger设置的级别,否则不会输出
  3. 向控制台输出时:
log4j.appender.Console.ImmediateFlush = true
log4j.appender.Console.Target = System.out

>>>ImmediateFlush的意思:是否立即更新,true
>>>Target:输出使用的方式。这里设置为了System.out
4. 向文件输出时:

log4j.appender.FileError = org.apache.log4j.DailyRollingFileAppender
log4j.appender.FileError.Threshold = ERROR 
log4j.appender.FileInfo.ImmediateFlush = true
log4j.appender.FileInfo.Append = true
log4j.appender.FileInfo.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.FileInfo.encoding = UTF-8
log4j.appender.FileInfo.File = ${LOG_DIR}/info

这里设置为了按日期输出文件,每天输出一个。
Append代表写入的方式,true的意思是直接在后面添入
DatePattern:文件每天保存的时候文件名后接的日期的格式,文件名的格式
encoding:写入文件的编码方式
File:这里使用了环境变量相对路径法定义了文件的存放位置和名称,用到了前面的环境变量。也可以直接使用绝对路径。第一次生成的文件没有DatePattern设定的后缀,之后的文件才会有这个后缀
6. 配置日志信息的格式(布局):

log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l:%m%n

Log4j提供的layout有以下几种:
》org.apache.log4j.HTMLLayout(以HTML表格形式布局),
》org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
》org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
》org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
一般都使用自定义org.apache.log4j.PatternLayout:这个时候需要自己设置打印参数: Log4J采用的打印格式化日志信息,如下:
  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MMM-dd HH:mm:ss , SSS},意思是:年-月-日 时:分:秒,毫秒
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
   %m 输出代码中指定的消息
  %r 输出自应用启动到输出该log信息耗费的毫秒数
  %c 输出所属的类目,通常就是所在类的全名
  %t 输出产生该日志事件的线程名
  %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

如果有遗漏或者错误欢迎补充或者我日后知道了也会补充。。。

热门文章

暂无图片
编程学习 ·

C语言 介绍

一.C的历史 编程语言的发展过程: 第1代语言 机器语言↓ 第2代语言 汇编语言↓ 第3代语言 高级语言——结构化:C,Fortran,Basic,Pascal↓分界线:1980s面向对象(OO):Algo,Simula67,Ada,SmallTalkC++,Java,C#结构化语言的缺陷: 操作和数据是分离的C语言的起源: 1969…
暂无图片
编程学习 ·

ubuntu:beyond compare 4 This license key has been revoked 解决办法

错误如图所示:解决办法:(1)先用find命令找到bcompare所在位置:sudo find /home/ -name *bcompare(2)进入 /home/whf/.config,删除/bcomapre文件夹注意一般.config为隐藏文件,通过 ctrl+h 可以显示:(3)cd /usr/lib/beyondcompare/ (4)sudo sed -i "s/keexjEP3…
暂无图片
编程学习 ·

MySQL

MySQL MySql基础 1:基本数据库命令 命令行连接 #使用cmd连接mysql --连接数据库 mysql -uroot -p123456 -- 修改用户密码 update mysql.user set authentication_string=password(123456) where user=root and Host = localhost; -- 刷新权限 flush privileges;-- 所有的sql语…
暂无图片
编程学习 ·

8080端口被占怎么办 ,解决方法

用后端springboot启动,8080端口 报错 8080 in use 打开 控制台 win+R 输入 cmd 进入后输入netstat -ano 肉眼能找到找就完事了如果找不到 输入netstat -aon|findstr “8080”找到最后一列的那个数字 “26252”, 就是PID 码 然后打开系统的 任务管理器 ,你要是任务管理器都不…
暂无图片
编程学习 ·

Spring核心源码学习笔记-01-XmlFactory

引言最基本的例子,创建一个xmlBeanFactory创建过程中,xmlBeanFactory会对资源文件进行解析,完成beanFactory创建。xmlBeanFactory继承机构:正式开始解析流程:初始化成员变量:XmlBeanDefinitionReader,并传入当前对象,作用于读取资源文件调用方法: this.reader.loadBean…
暂无图片
编程学习 ·

Vue动态缓存页面

原理通过keep-alive标签的include属性及vuex完成 需求说明:A页面到B页面需要缓存,A页面到C页面不需要缓存 所要缓存页面的顶级出口 <keep-alive :include="kpAlive"><router-view/> </keep-alive><script> export default {computed: {/**…
暂无图片
编程学习 ·

转 C++常用设计模式

适配器模式可以将一个类的接口转换成客户端希望的另一个接口,使得原来由于接口不兼容而不能在一起工作的那些类可以在一起工作。通俗的讲就是当我们已经有了一些类,而这些类不能满足新的需求,此时就可以考虑是否能将现有的类适配成可以满足新需求的类。适配器类需要继承或依…
暂无图片
编程学习 ·

Python函数图像绘制(使用海龟库)

序言 如果我们想绘制函数图像,百度上的实现方法琳琅满目,而大多都是使用matlab或其他复杂的库。对于初学者十分头疼。今天我将带着大家一起使用海龟库绘制函数图像。程序十分简单,相对的也不是很美观,大家可以再完善。 准备工作 import turtle as t t.speed(0)#绘制速度达到…
暂无图片
编程学习 ·

mysql表碎片回收

1、alter table t engine = innodb;重建整个表,对于支持online ddl的版本,当线上进行操作的时候要调大innodb_online_alter_log_max_size参数,因为该参数会记录ddl过程中的dml操作,而此临时文件存放在临时排序区(innodb_sort_buffer_size),innodb_sort_buffer_size参数上…
暂无图片
编程学习 ·

App测试中IOS和安卓测试的区别

一、分辨率的测试 安卓端有20多种,IOS相对就比较少一些 二、操作系统的版本 安卓的操作系统比较多,IOS比较少,而且它只能支持单项升级,不能支持降级。 三、操作习惯的一些不同 安卓习惯点击BACK键,所以我们要测试一下BACK键,看看BACK键是否被重写了。点击BACK键之后,看看…
暂无图片
编程学习 ·

百度云在线播放视频设置倍速播放

百度云在线播放器为html5播放器,所以直接修改其属性可达到加速效果:本人使用的是Safari浏览器,有效。右击网页打开“审查元素”(有的叫做“检查”)。2. 选择控制台3.粘贴命令 //设置默认倍速 为2倍 document.querySelector(video).defaultPlaybackRate = 2.0; document.qu…
暂无图片
编程学习 ·

vue+ts报错 Parsing error: Unexpected token

1.检查是否安装 babel-eslint2.打开.eslint.js文件检查部分属性和下方的是否匹配// ESlint 检查配置 module.exports = {root: true,parserOptions: {parser: babel-eslint,sourceType: module},parser: "vue-eslint-parser",//------------env: {browser: true,node…
暂无图片
编程学习 ·

day1

入职第一天 早早去了公司,等了一会儿,hr来带我们入职,准备材料签合同,领办公用品。 根据入职文档及手册进行一系列配置(比较简单,跟着做一般不会出错) 在同事小姐姐的帮助下申请种种权限,下载要用到的软件,搭配环境(最难), 使用的是linux命令进行一系列操作: 打开…
暂无图片
编程学习 ·

C#中常见的简答题(第三天)

8.简述ADO.NET中五个主要对象A.Connection:主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。Close和Dispose的区别,Close以后还可以Open,Dispose以后则不能再用。B.Command:主要可以用来对数据库发出一些指令,例如可以对数据…
暂无图片
编程学习 ·

【源码阅读技巧一】查看类关系图,接口实现关系图(idea版本)Diagrams关系图

我们在阅读源码的时候,往往需要理清楚各个类,各个接口之间的关系,然后再去理解他的设计思路,有个大概理解,然后去阅读源码,就容易很多,那么今天就来讲一下如何使用idea来查看关系图: 一、查看类的父类,以及实现的接口 1、打开想要查看的类,通过idea的定位找到类所在位…
暂无图片
编程学习 ·

07:从一个二维数组中查找一个数

题目:从一个二维数组中查找一个数 数组要求:从左到右,从上到小依次递增的矩形二维数组 思路:我们从矩阵的右上角开始查找,若该位置的数值小于目标值,列数减一;若数值大于目标值,行数加一,后续重复。 public class Offer07 {public static void main(String[] args) {i…
暂无图片
编程学习 ·

操作系统——内核模块的键盘监控

操作系统——内核模块的键盘监控 实验环境: VMware + Ubuntu32位 实验步骤: 1.键盘码与ASII码的对应关系。 在Linux操作系统中,键盘的输入是以键盘码的形式存在的,所以我们必然需要将其转化为可读的字符(串)形式。于是我们构造数组:一些不常用的或是不方便表示的输入就使用…