一.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---------学习总结(一)的更多相关文章

  1. log4j学习(二) 不要用log4j了,用slf4j + logback吧

    标题比较尴尬,log4j学习系列的最后一篇是放弃log4j    - -!  一. 简介 log4j的作者提出了slf4j,简单日志门面,相当于是一套统一的java日志api,是个接口标准,编程时使用 ...

  2. Log4j学习

    学习链接: http://www.codeceo.com/article/log4j-usage.html http://www.blogjava.net/kit-soft/archive/2009/ ...

  3. log4j学习(一)最简单的例子

    前言: 之前笔者一直是在System.out中打日志的,由于笔者大部分时候是编写在tomcat容器里运行的一些个小web应用,所以这么做似乎没什么问题:打印出来的日志都可以在tomcat自己的log目 ...

  4. Log4j学习(使用流程,Log4j.properties配置文件,配置到多个不同目标)

    参考网址: [http://blog.csdn.net/drift_away/article/details/7403658] [http://blog.csdn.net/lxzo123/articl ...

  5. log4j学习一:解决系统日志错位问题

    这两天,开发的系统遇到了一个非常奇怪的问题,我们的前台程序会将日志时而输出到webapp.log,时而输出到其他日志文件如AlarmThreshold.log中,初看并无规律,但秉着“机器永远不会出错 ...

  6. log4j学习日记-写入数据库

    1.首先创建日志数据库 用的是MySQL CREATE TABLE `td_log` (   `lid` int(11) NOT NULL AUTO_INCREMENT,   `lusername` ...

  7. Log4j学习手记

    注:今天难得清闲,学了下log4j,参考博文 http://www.cnblogs.com/pony/archive/2008/08/25/1275484.html ,文字部分基本上来自该博文,我只是 ...

  8. log4j学习笔记

    在java文件中导入包: import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; 在所使 ...

  9. java中log4j学习笔记

    Log4j是apache的一个开源项目,用来操作程序日志信息的框架.因便于管理,在工程中用来代替System.out打印语句.通过配置Log4j中的log4j.properties,可以指定日志信息的 ...

  10. log4j学习总结

    一直使用log4j来记录日志,但是一直以来没有深入研究过log4j,最近研究了下log4j,下面总结一下: log4j配置: 1. 配置根Logger,其语法为: log4j.rootLogger = ...

随机推荐

  1. web server与app server有什么不同

    简单来说,web服务器提供页面给浏览器,而app服务器提供客户端可以调用的接口.具体而言,我们可以说: Web服务器处理HTTP请求,而app服务器基于多种不同的协议,处理应用程序的逻辑问题. 以下将 ...

  2. HDU 4900 NO ACM NO LIFE(概率+枚举+搜索)(2014 Multi-University Training Contest 4)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4900 Problem Description There is an old country and ...

  3. bzoj1834 [ZJOI2010]network 网络扩容

    第一问跑最大流,第二问新建一条边连接0和1,流量为上第一问的答案+k,费用为0,接下来图中每条边拆成两条边,第一条容量为C费用为0,第二条容量无穷费用为W,再跑一遍费用流即可. 代码 #include ...

  4. paper 36 :[教程] 基于GridSearch的svm参数寻优

    尊重原创~~~ 转载出处:http://www.matlabsky.com/thread-12411-1-1.html 交叉验证(Cross Validation)方法思想简介http://www.m ...

  5. knockout之入门介绍

    Knockout是一个轻量级的UI类库,通过应用MVVM模式使JavaScript的前端UI简单化.Knockout是一个以数据模型(data model)为基础的能够帮助你创建丰富文本,响应显示和编 ...

  6. Sql Server 2012 的新分页方法分析(offset and fetch) - 转载

    最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...

  7. 图像处理工具包ImagXpress中如何定义图像显示属性

    图像处理工具包ImagXpress中如何定义图像显示属性,如色彩管理.设置工具栏和工具.设置上下文&工具栏菜单.配置滚动条.鼠标和键等······ 在显示图像时的色彩管理 在ImagXpres ...

  8. 关于Win7 64位 mysql 5.7下载安装问题

    1.从官网下载mysql: 网址:http://dev.mysql.com/downloads/mysql/ 这是我们要找的,win7 64位 点击下载: 出现如图所示,我们不必要登录注册,点击红线内 ...

  9. 在 VirtualBox 中 CentOS 网络设置

    转自:本文发表于水景一页.永久链接:<http://cnzhx.net/blog/minimal-centos-in-virtualbox/>.转载请保留此信息及相应链接. 4. 设置¶ ...

  10. Docker Centos安装Openssh

    环境介绍: Docker版本:1.5.0 镜像:docker.io:centos latest 操作步骤: 1.启动镜像 docker run -ti centos /bin/bash 2.安装pas ...