JAVA中的Log4j
Log4j的简介:
1.如果程序中出现异常我们怎么解决
使用异常处理机制==>异常 使用debug调试(必须掌握) System.out.Print();
001.控制台行数有限制
002.影响性能
003 如果我们需要对用户的行为和习惯进行分析!不能解决这个问题
我们需要一个能把记录用户行为和习惯的代码记录到一个文件中
Log4j:(Log for Java)
01.是使用java语言编写的一个日志框架
02.是Apache的一个开源项目
03.记录我们程序中的日志信息
04.将日志信息输出到我们指定的目的地
.log结尾的(日志文件);
Log4j的作用:
01.记录代码中变量的变化,用于我们的程序调试和后期维护.
02.可以周期性的保存一些数据,用于后期对数据的分析
03.通过设置日志信息的级别,来便于我们管理
Log4j的组成部分:(日志的记录器(Logger),日志的输出格式(Layout),3.日志的输出目的地(Appender))
1.日志的记录器(Logger)
日志的输出级别
OFF 级别最高,用于关闭所有的日志输出
ALL 级别最低,用于开启所有的日志输出
----------------------------------------------------------------------------------
Fatal 严重的错误事件,将导致我们的程序终止
Error 错误事件,不会影响我们程序的继续执行
Warn 存在潜在的错误场景
Info 指的是粗粒度级别上的使用
Debug 指的是细粒度级别上的使用
Trace 比Debug还要细的
开发环境(开发阶段) : 使用的日志级别比较低 Debug
生产环境 (项目上线) : 建立把Debug细粒度的设置成Warn
2.日志的输出格式(Layout)
%p 日志信息的优先级
%d 日志信息的输出时间 %d{yyyy-MM-dd hh:mm:ss}
%C 日志信息的输出类
%l 日志信息的输出位置:类+线程+行号
%M 日志信息的输出 所在方法
%m 日志信息的输出的内容
%n 输入日志信息之后 换行
-----------------------------------------------下面两种不常用------------------------------
%t 日志信息的输出 所在线程
%r 从程序启动到输出日志信息所经历的时间(毫秒)
3.日志的输出目的地(Appender)
01.把我们的日志信息输出到某个地址
02.可以同指定多个输出地
03.一个输出地就对应一个Appender
将日志输出到Console控制台中====》ConsoleAppender
将日志输出到文件中
====》01.RollingFileAppender 根据文件的大小创建新的日志文件
====》02.DailyRollingFileAppender 根据时间创建新的日志文件
下面第一个例子创建一个Log4j的项目
package baselog4j; import org.apache.log4j.Logger; /**
* @2018-04-19
* @王鸿
* @Administrator
*/
public class BaseLog4j { public static void main(String[] args) {
// 日志收集器
Logger logger = Logger.getLogger(BaseLog4j.class);
logger.fatal("fatal message");
logger.error("error message");
logger.warn("warn message");
logger.info("info message");
logger.debug("debug message");
logger.trace("trace message");
}
}
下面是一个配置文件里面的 "log4j.properties"
# 01.把我们的日志信息 输出到Console控制台上
# ConsoleAppender console=new ConsoleAppender();
#log4j.appender.console规范写法 console就是一个对象名称 可以自定义
log4j.appender.console=org.apache.log4j.ConsoleAppender
#对象名.属性 target输出地
log4j.appender.console.Target=System.err
# 创建输出格式所需要的对象 Layout
log4j.appender.console.Layout=org.apache.log4j.PatternLayout
# 设置输出格式
log4j.appender.console.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l %m %n
#通过log4j.rootLogger 来指定我们的日志输出级别和输出目的地
# 级别必须位于第一个位置,只能有一个
log4j.rootLogger=debug,console
下面是输出结果

下面的是同时在控制台中和电脑的E盘同时创建(main的代码不变)
# 01.把我们的日志信息 输出到Console控制台上
# ConsoleAppender console=new ConsoleAppender();
#log4j.appender.console规范写法 console就是一个对象名称 可以自定义
log4j.appender.console=org.apache.log4j.ConsoleAppender
#对象名.属性 target输出地
log4j.appender.console.Target=System.err
# 创建输出格式所需要的对象 Layout
log4j.appender.console.Layout=org.apache.log4j.PatternLayout
# 设置输出格式
log4j.appender.console.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l %m %n #02.输出到文件中 根据文件大小自动创建
log4j.appender.file=org.apache.log4j.RollingFileAppender
#指定文件输出位置
log4j.appender.file.File=e\:/log/log4j.log
#设置文件最大容量
log4j.appender.file.MaxFileSize=1kb
#如果超过了文件大小创建几个新文件
log4j.appender.file.MaxBackupIndex=3
#如果文件都满了 设置是否覆盖之前的文件
log4j.appender.file.Append=true
# 创建输出格式所需要的对象 Layout
log4j.appender.file.Layout=org.apache.log4j.PatternLayout
# 设置输出格式
log4j.appender.file.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l %m %n #通过log4j.rootLogger 来指定我们的日志输出级别和输出目的地 # 级别必须位于第一个位置,只能有一个
log4j.rootLogger=debug,console,file



这样会在E盘下log文件夹下创建一个以log4j.log的日志文件
下面创建一个每分钟创建的"log4j.properties"
# 01.把我们的日志信息 输出到Console控制台上
# ConsoleAppender console=new ConsoleAppender();
#log4j.appender.console规范写法 console就是一个对象名称 可以自定义
log4j.appender.console=org.apache.log4j.ConsoleAppender
#对象名.属性 target输出地
log4j.appender.console.Target=System.err
# 创建输出格式所需要的对象 Layout
log4j.appender.console.Layout=org.apache.log4j.PatternLayout
# 设置输出格式
log4j.appender.console.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l %m %n #02.输出到文件中 根据文件大小自动创建
log4j.appender.file=org.apache.log4j.RollingFileAppender
#指定文件输出位置
log4j.appender.file.File=e\:/log/log4j.log
#设置文件最大容量
log4j.appender.file.MaxFileSize=1kb
#如果超过了文件大小创建几个新文件
log4j.appender.file.MaxBackupIndex=3
#如果文件都满了 设置是否覆盖之前的文件
log4j.appender.file.Append=true
# 创建输出格式所需要的对象 Layout
log4j.appender.file.Layout=org.apache.log4j.PatternLayout
# 设置输出格式
log4j.appender.file.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l %m %n #03.每分钟生成一个新文件
log4j.appender.file2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file2.Append=true
#DatePattern共分为6种方式
log4j.appender.file2.DatePattern=yyyy-MM-dd-hh-mm'.log'
log4j.appender.file2.File=e\:/log/log4j.log
# 创建输出格式所需要的对象 Layout
log4j.appender.file2.Layout=org.apache.log4j.PatternLayout
# 设置输出格式
log4j.appender.file2.Layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss} %l %m %n #通过log4j.rootLogger 来指定我们的日志输出级别和输出目的地
# 级别必须位于第一个位置,只能有一个
log4j.rootLogger=trace,console,file2 #指定包中的日志输出
#log4j.logger.com.ddf=trace,console,file2
DailyRollingFileAppender中的 DatePattern共分为6种方式
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
JAVA中的Log4j的更多相关文章
- JAVA中使用log4j及slf4j进行日志输出的方法详解
JAVA中输出日志比较常用的是log4j,这里讲下log4j的配置和使用方法,以及slf4j的使用方法. 一.下载log4j的架包,并导入项目中,如下: 二.创建log4j.properties配置 ...
- JAVA中使用LOG4J记录日志(转)
在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...
- JAVA中使用LOG4J记录日志
在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...
- java 中使用log4j
一.控制台使用 1.导入log4j包到工程中 2.配置: log4j.rootLogger=DEBUG,console,R log4j.appender.console=org.apache.log4 ...
- Java中使用Log4j记录错误、输出日志
简介: Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进 ...
- 在java项目中使用log4j的实例
测试log4j的项目结构 Log4j.properties的路径为 src/config/log4j Log4j.properties文件的内容 下面定义日志输出级别是 INFO,并且配置了2个 ...
- java web中使用log4j
测试log4j的项目结构 Log4j.properties的路径为 src/config/log4j Log4j.properties文件的内容 下面定义日志输出级别是 INFO,并且配置了2个 ...
- 【转】详细讲解Java中log4j的使用方法
转载地址:http://www.233.com/Java/zhuangye/20070731/142625631.html 1.Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 ...
- Java中log4j的使用
前言 距离上一篇文章又过去好长时间了,这段时间一直忙于工作,已经从net彻底转向Java了.工作也慢慢的步入正轨了,自己独自完成了一个小项目,不过工作中遇到了一些问题,还是得到了同学和同事的帮助.本来 ...
随机推荐
- MongoDB 搭建文件存储的方案
用云的话,节省你开发成本,快速上线,数据比较安全.缺点是一旦用了他们的,形成习惯以后,数据想迁移就会比较麻烦,你会越来越依赖,而且规模上去以后价格并不低.早年自己做的话,你需要实现分布式文件系统,这个 ...
- 深入理解Java虚拟机类加载机制
1.类加载时机 对于类加载的第一个阶段---加载,虚拟机没有强制的约束,但是对于初始化阶段,虚拟机强制规定有且只有以下的5中情况必须开始初始化,当然,加载.验证.准备阶段在初始化前就已经开始. ①使用 ...
- ATM+购物商城完整版
一,需求:模拟实现一个ATM + 购物商城程序 要求如下: 1.额度15000或者自定义 2.实现购物商城,买东西加入购物车,调用信用卡接口结账 3.可以提现,手续费5% 4.支持多账户登陆 5.支持 ...
- 【Unity3D与23种设计模式】享元模式(Flyweight)
GoF中定义: "使用共享的方式,让一大群小规模对象能更有效地运行" 享元模式一般应用在游戏角色属性设置上 游戏策划需要通过"公式计算"或者"实际测试 ...
- 设计模式——备忘录模式(C++实现)
#include <iostream> #include <string> #include <vector> using namespace std; class ...
- ServiceFabric极简文档-0. ServiceFabric简介
前言: 最近ServiceFabric开源了,大家热情都比较高,官方文档大而全,但快速入手不容易找到头绪.发几篇极简的文档,跟大家分享一下,顺便为Ray的ServiceFabric部署做一下铺垫.因为 ...
- WPF介绍
WPF 为Windows Presentation Foundation的首字母缩写 ,中文译为“Windows呈现基础”.WPF是微软新一代图形系统,运行在.NET Framework 3.0及以上 ...
- windows 设置/修改全局快捷键
打开控制面板,小图表显示下 点击 管理工具项, 将自己想要谁知快捷键的程序的快捷方式放进去,(需要确认管理员权限) 如图,第一个即为 lz添加的 右击选择属性 在快捷键处同时按下你想要的组合键即可(不 ...
- 笔记:Struts2 输入校验
Struts2的输入校验包含了客户端校验和服务器端校验,通过编写校验规则文件来实现输入校验,需要增加 Convention 插件,将 struts2-convention-plugin-2.3.31. ...
- IT连创业系列:产品设计之答题模块
前言: 距上篇写完:IT连创业系列:新的一年,先淫文一篇! 转眼又两个星期了,今天不写文,估计大伙又得等两周了. 所以啊~~ 只能再努力一点了,花一天半天的,继续和大伙分享这让人心碎的创业历程. 这两 ...