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 = ...
随机推荐
- Java基础(6):foreach 方法遍历数组
foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组.集合时, foreach 更简单便捷.从英文字面意思理解 foreach 也就是“ for 每一个”的意思,那 ...
- 从一个例子讲解拷贝构造函数与return
#include "iostream" using namespace std; class Location { public: Location(, ) { X = xx; Y ...
- centos dhcp网络设置
CentOS 网络设置修改 一.CentOS 修改IP地址 修改对应网卡的IP地址的配置文件# vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改以下内 ...
- C# 把字符串类型日期转换为日期类型
方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss ================================== ...
- 01---Net基础加强
声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10.交换两个变量,使用第三个变量! class Program { static void Ma ...
- 广告点击率 CTR预估中GBDT与LR融合方案
http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm 1.背景 CTR预估,广告点击率(Click-Through Rate Pred ...
- 三层架构和MVC模式
目录[-] 1.三层架构 2.MVC 2.1 标准的MVC(Model-View-Controller) 2.2 Web MVC 3.三层架构和MVC的区别与联系 1.三层架构 三层架构(3-tier ...
- DataGridView 些许事件测试
原始设计需求:当单元格内容是空白时,鼠标进入之后,显示一些数据 直观的第一感觉必然是用CellClick,细想,如果用户不用鼠标,直接按Tab键切换单元格呢?又或者,用户直接双击涅~ 主要测试的是: ...
- Centos安装wine等组件的问题
linux下安装wine可以从源码编译安装,但一般都觉得麻烦,所以尽量利用yum进行安装,解决很多包的依赖关系. 首先安装一个epelrpm -ivh http://dl.fedoraproject. ...
- Controller 接口控制器详解
Controller 控制器,是 MVC 中的部分 C,为什么是部分呢?因为此处的控制器主要负责功能处理部分:1.收集.验证请求参数并绑定到命令对象:2.将命令对象交给业务对象,由业务对象处理并返回模 ...