log4j---------学习总结(一)
一.log4j框架
- log4j可靠的,快速的,可扩展的(灵活的)日志框架
- log4j具有高可配置性,可以通过外部配置文件来控制
- log4j可以根据日志不同级别来过滤日志,
- log4j可以将日志记录直接写到控制台,文件,数据库,UNIX系统日志
- log4j的配置文件默认引用地址为PATH或者CLASSPATH所在目录当中(在src下面,第一层),标准名称=log4j.properties
总结:首先log4j是一个日志框架,用来记录项目运行中的一些日志,而log4j的配置是通过外部的配置文件来实现,体现了这个框架的灵活性
并且日志分级别过滤,更高级的是能将日志记录到很多地方.
二.log4j的maven引用和下载地址
1.maven地址
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2.jar下载地址
http://logging.apache.org/log4j/2.x/download.html
三.配置文件

解释:
第一行-------------初始化日志记录位置,日志过滤级别 (ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL)
第二行-------------日志以什么方式打印(输出源)(file,DB,Console,)
第三行-------------日志以什么格式打印(布局)(PatternLayout,HTMLLayout)
//1.输出源响应的实现类
//文件
file--->org.apache.log4j.FileAppender
//数据库
DB--->org.apache.log4j.JDBCAppender
//控制台
Console--->org.apache.log4j.ConsoleAppender //2.布局模式
PatternLayout--->org.apache.log4j.PatternLayout HTMLLayout--->org.apache.log4j.HTMLLayout
四.输出源参数解析
一.数据库参数 (org.apache.log4j.JDBCAppender)
| user | 连接数据库的用户名 |
| password | 连接数据库的密码 |
| URL | 数据库的连接字符串 |
| driver | 连接数据库的驱动程序 |
| sql | 设置操作数据库的SQL语句 |
五.布局模式参数解析
一.PatternLayout参数
| M | 打印日志请求的方法名称 method |
| C | 输出日志打印请求的类名加包名,例:com.test.Test |
| X | 打印日志记录请求的客户端地址 |
| d | 打印日志记录的当前时间%d{yyyy-MM-dd HH:mm:ss} |
| m | 打印应用程序的一些信息 |
| p | 打印日志的过滤级别 |
| n | 输出一个当前系统的换行符 |
六.测试
1.日志记录文件测试
log4j配置
logDir=D:/log
log4j.rootLogger=DEBUG,FILE log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${logDir}/log.txt log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n
2.日志记录数据库测试
log4j配置
log4j.rootLogger = INFO, DB log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DB.URL=jdbc:mysql://localhost:3306/Testlogs
log4j.appender.DB.driver=com.mysql.jdbc.Driver
log4j.appender.DB.user=****
log4j.appender.DB.password=****
log4j.appender.DB.sql=INSERT INTO log (logDate, logClientIP, logName, logLevel, logMsg) VALUES('%d','%X{clientIP}','%C','%p','%m') log4j.appender.DB.layout=org.apache.log4j.PatternLayout
数据库表
CREATE TABLE log4j(
logId INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
logDate VARCHAR(10),
logClientIP VARCHAR(15),
logName VARCHAR(255),
logLevel VARCHAR(5),
logMsg VARCHAR(255)
); 七.java测试
package com.du20150626;
import org.apache.log4j.Logger;
public class Log4jTest {
/**
* log4j可靠的,快速的,可扩展的(灵活的)日志框架
* log4j具有高可配置性,可以通过外部配置文件来控制
* log4j可以根据日志不同级别来过滤日志,
* log4j可以将日志记录直接写到控制台,文件,数据库,UNIX系统日志
* log4j配置文件名称=log4j.properties 存放位置PATH或者CLASSPATH所在目录当中
*
*/
private static Logger log = Logger.getLogger(Log4jTest.class);
public static void main(String[] args) {
log.debug("Debug ----> log4j debug");
log.info("info -----> log4j info");
log.info("info -----> log4j info");
log.debug("Debug ----> log4j debug");
log.info("info -----> log4j info");
log.info("info -----> log4j info");
log.info("info -----> log4j info");
}
}
log4j---------学习总结(一)的更多相关文章
- log4j学习(二) 不要用log4j了,用slf4j + logback吧
标题比较尴尬,log4j学习系列的最后一篇是放弃log4j - -! 一. 简介 log4j的作者提出了slf4j,简单日志门面,相当于是一套统一的java日志api,是个接口标准,编程时使用 ...
- Log4j学习
学习链接: http://www.codeceo.com/article/log4j-usage.html http://www.blogjava.net/kit-soft/archive/2009/ ...
- log4j学习(一)最简单的例子
前言: 之前笔者一直是在System.out中打日志的,由于笔者大部分时候是编写在tomcat容器里运行的一些个小web应用,所以这么做似乎没什么问题:打印出来的日志都可以在tomcat自己的log目 ...
- Log4j学习(使用流程,Log4j.properties配置文件,配置到多个不同目标)
参考网址: [http://blog.csdn.net/drift_away/article/details/7403658] [http://blog.csdn.net/lxzo123/articl ...
- log4j学习一:解决系统日志错位问题
这两天,开发的系统遇到了一个非常奇怪的问题,我们的前台程序会将日志时而输出到webapp.log,时而输出到其他日志文件如AlarmThreshold.log中,初看并无规律,但秉着“机器永远不会出错 ...
- log4j学习日记-写入数据库
1.首先创建日志数据库 用的是MySQL CREATE TABLE `td_log` ( `lid` int(11) NOT NULL AUTO_INCREMENT, `lusername` ...
- Log4j学习手记
注:今天难得清闲,学了下log4j,参考博文 http://www.cnblogs.com/pony/archive/2008/08/25/1275484.html ,文字部分基本上来自该博文,我只是 ...
- log4j学习笔记
在java文件中导入包: import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; 在所使 ...
- java中log4j学习笔记
Log4j是apache的一个开源项目,用来操作程序日志信息的框架.因便于管理,在工程中用来代替System.out打印语句.通过配置Log4j中的log4j.properties,可以指定日志信息的 ...
- log4j学习总结
一直使用log4j来记录日志,但是一直以来没有深入研究过log4j,最近研究了下log4j,下面总结一下: log4j配置: 1. 配置根Logger,其语法为: log4j.rootLogger = ...
随机推荐
- git的基本使用
1.在本地新建一个文件夹来存放代码 2.用命令行进入这个文件夹 3.git init --来创建一个代码仓库 3. 配置用户信息:用户名和 邮箱(联系作者本人沟通, 责任到人) git config ...
- struts文件上传(多文件)
第01步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...
- JAVA测试装饰者模式
package shb.java.demo; /** * 测试装饰者模式 * @package :shb.java.demoJava02 * @author shaobn * @Describe : ...
- JavaScript中Date(日期对象),Math对象--学习笔记
Date对象 1.什么是Date对象? 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 语法:var Udate=new Date(); 注:初始值为当前时间(当前电脑系统 ...
- java 虚拟机工具
jps 命令 可以查询开启了rmi服务的远程虚拟机进程状态. -v jvm参数. jstat -gcutil命令 [cangyue@/System/Library/Frameworks/JavaVM. ...
- 解决ultravnc在win2008 R2下CTRL+ALT+DELETEA组合键发送失败的问题
首先,请google “ultravnc ctrl+alt+delete”,得到的解决方法是,更改UAC.进入组策略-计算机配置-管理模板-windows登陆选项,“禁用或启用软件注意序列”,更改成“ ...
- Sql Server 2012 的新分页方法分析(offset and fetch) - 转载
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...
- 【python cookbook】【数据结构与算法】12.找出序列中出现次数最多的元素
问题:找出一个元素序列中出现次数最多的元素是什么 解决方案:collections模块中的Counter类正是为此类问题所设计的.它的一个非常方便的most_common()方法直接告诉你答案. # ...
- kvm虚拟机virt-manager启动报错
安装kvm,用virt-manager启动时报错如下: Traceback (most recent call last): File "/usr/share/virt-manager/v ...
- linux,shell输入反斜杠显示'W'。
linux,shell输入反斜杠显示'W'. solution: 字体必须为"Courier New".