log4j在eclipse上使用简介
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
那么,我们应该如何配置和使用log4j呢?
<1>首先,我们要配置jar包,通过搜索引擎搜索log4j maven,保存进pom.xml即可
<2>配置文件,通常将log4j.properties放置到src目录下,, log4j.properties代码样式如下:
log4j.rootCategory=DEBUG, file, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d-[TS] %p %t %c - %m%nlog4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=target/test.log
log4j.appender.file.MaxFileSize=5120KB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n##SPRING改为WARN级别
log4j.logger.org.springframework=DEBUG
log4j.logger.org.mybatis=WARN
log4j.logger.org.apache.velocity=WARN
log4j.logger.org.apache.commons=WARN##显示SQL语句部分,生产环境请调整为ERROR
log4j.logger.com.mybatis=DEBUG
log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
<3>配置好了log4j,我们接下来分享一下它要如何使用。首先,我们要了解log4j的三大组件:
Logger(日志类别):
Appender(日志输出目的地)
Layout(格式化输出日志信息)
1,对于logger,log4j提供四种级别,从低到高分别是DEBUG、INFO、WARN、ERROR 、FATAL。我们可以通过更改log4j.properties中的属性来对输出级别进行设置
log4j.rootCategory=DEBUG, file, stdout//例如,设置级别为debug
当我们设置好一个级别之后,比该级别低的日志信息将不会再显示,log4j只会显示和设置级别一样或者比日志级别高的信息
2,对于Appender,Appender可以控制日志输出的目的地。
log4j.appender.appenderName = 属性值
属性值可以设置成以下几种,每种都是不同的日志输出方式
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
如果想具体的设置日志输出属性,比如路径,日志文件的大小…可以通过自定义的appenderName.option来设置
log4j.appender.appenderName.option1 = value
3,Layout(格式化输出日志信息),Layout可以控制输出信息的格式,用法类似于C语言中scanf,prinf的参数
log4j.appender.appenderName.layout = 属性值
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)log4j.appender.appenderName.layout.option1 = value1
ConversionPattern (举例:%d-[ZZXTIT] %p %t %c - %m%n)
每个字符都有独特的含义,下面是字符含义表
- %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%c: 输出日志信息所属的类目,通常就是所在类的全名
%t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中
%%: 输出一个”%”字符
%F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%m: 输出代码中指定的消息,产生的日志具体信息
%n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行
现在,我们可以具体的使用log4j了
private final Log log=LogFactory.getLog(LoginFilter.class);
因为我们输出的日志信息不希望被修改,我们可以将其设置为final,在getlog中传入当前类的类名(不错,我在做过滤器…)之后,使用对象名点方法名即可输出日志信息
log.debug("这是一条debug信息");
这样,日志信息就成功输出了
相关文章:

关于编程的浅学习与深学习
导读:Tanky Woo的程序人生在博客中发表了《关于编程的浅学习与深学习》,文章是关于编程学习的一个提议、归纳、总结。以下是文章全部内容:关于编程的学习,大家肯定都知道,也是大家都说来说去的,就几句话&am…

shiro实战系列(一)之入门实战
一、什么是shiro? Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,甚至是痛苦的,但它没有必要…
数据源和连接池
JDBC数据源: Data Source JDBC中提供了javax.sql.DataSource接口,负责建立与数据库的连接 DataSource对象可以由Web服务器提供,前提是需要在服务器配置DataSource(包括连接池) 连接池:Connection Pool…

FastReport.net 使用 Winform WebForm打印
delphi用的fastreport比较多 所以。net中也研究一下用法,这个打印控件还是很简单的 只要手动设计一下写少许代码就可以打印了 甚至可以写成通用代码 以后就可以不用写代码 安装demo会同时安一个设计器 打开设计器 通过设计器设计模板 新建数据源 新建数据集 查询单表全部内容&…

Ubuntu 12.04安装Sun JDK 6
Ubuntu 12.04安装Sun JDK 6 下载 sun jdk 6 bin. 设置权限 chmod x jdk-6u25-linux-i586.bin 解压文件 ./jdk-6u25-linux-i586.bin 移动位置到 sudo mv jdk1.6.0_25 /usr/lib/jvm/ 设置系统环境 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.…

如果你的云服务商倒闭该怎么办?
如果你的云服务商倒闭或暂时中断服务,以下4个步骤能够帮助你的企业把损失减少到最低。 2009年2月,云服务商Coghead在一封写给客户的电子邮件中宣布该公司"由于受到经济挑战的影响",将立即终止基于云的开发平台服务。随后࿰…

Ubuntu16.04桌面系统如何配置和启动wireshark
上一篇介绍了在Ubuntu系统中安装wireshark 本篇介绍在Ubuntu系统中配置和启动wireshark; 安装好后,直接在终端运行$ wireshark。出于安全方面的考虑,普通用户不能够打开网卡设备进行抓包,Wireshark不建议用户通过sudo在root权限下…

[导入]笔记本”终极“散热方案
笔记本老了,三年了,电池不太行了,散热量也大。解决电池问题首先是能耗的问题,我把能够卸下来的光驱和读卡器都拆了,这下留了一个大长孔,很好的是这样散热问题也得到了解决,光驱的大孔和读卡器那…

Android中Broadcast
前一段时间,听说过android的广播,这段时间经过研究终于可以写出一个Demo 首先新建一个android工程项目 在BroadCastActivity.java中 package com.mypack;import android.app.Activity; import android.content.Intent; import android.os.Bundle; import…
java web三大组件之filter过滤器
过滤器是java web中相当重要的组成成分,是JavaWeb三大组件之一,它与Servlet很相似。不过过滤器有以下三条特性: 过滤器是用来拦截请求的,而不是处理请求的。当用户请求某个Servlet时,会先执行部署在这个请求上的Filte…

Permission denied: make_sock: could not bind to address [::]:81 Apache 虚拟主机
想建立一个测试用的虚拟主机,遇到了这个问题: [rootlocalhost html]# service httpd start Starting httpd: httpd: Could not reliably determine the servers fully qualified domain name, using localhost.termwikidev for ServerName (13)Permissio…

E: GPG 错误:http://developer.download.nvidia.com Release: 下列签名无效: NODATA 1 NODATA 2...
参考链接:https://github.com/NVIDIA/nvidia-docker/issues/571 在安装CUDA的时候出现的问题,根本原因是各位都懂的地区局域网特色,我试了很多方法,结果还是Github上一个老铁提出的一个简单方法:修改/etc/apt/sources.…
spring 框架学习(一)
1、spring简介 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring的一个最大的目的就是使JAVA EE开发…

Styling with the DataGridColumnStyle
详细讲解了如何自定义DataGrid控件,将多种控件(如:进度条、按钮、下拉框)绑定到数据列中 参考MSDNPart 1:http://msdn.microsoft.com/en-us/library/ms996449Part 2:http://msdn.microsoft.com/en-us/libra…

Excel常用公式记录
1.生成指定时间段内的日期: TEXT("2019/8/9 00:00"RAND()*54,"yyyy/mm/hh HH:MM") 注意:RAND()*54,54指从2019/8/9日起的54天,有时会有2019/8/00的错误格式 2.生成类似于“第一级”,“第二级”类似…

Delphi XE2 发布了,期待了很久的东西,开始学习中。
这个博客将记录我学习DELPHI XE2及开发相关应用程序的点点滴滴,因此该博客内容全部原创,我也不会转载和抄录别人的代码。为了让大家和我一同进步,所有示例都带源代码,你可以随时下载后进行调试运行。 Delphi--一个伴随我12年的开发…

基于libmad库的MP3解码简析
基于libmad库的MP3解码简析 MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3)。LIBMAD 提供 24-bit 的 PCM 输出,完全是定点计算&#…

oracle数据库增加新字段
--Add/modify columns alter table 表名 add 字段名 类型; --------------------------------------------------------------------- --Add comments to the columns comment on column CE00.eec000 is xxx;转载于:https://www.cnblogs.com/yby120/p/9138801.html

list @size 验证_第33期:上海自来水来自海上,回文字符串验证!
我准备了 1000 本电子书和计算机各领域高清思维导图 100 张,关注后回复【资源】,即可获取!更可回复【内推】加入 BAT 内推群!01、题目示例见微知著,发现一组数据很有趣,分享给大家。leetcode 第一题通过次数…

安装apache的时候80端口被PID为4的系统进程所占用
由于工作中需要直接从MySQL后台读取数据,所以安装了PHPnow,装的过程中提示Apache安装失败,80端口被占用。 在cmd中输入netstat –ano命令,发现80端口被一个PID为4的服务所占用,打开任务管理器,发现PID为4的…

PHP根据时间戳返回星期几
为什么80%的码农都做不了架构师?>>> <?php /*** 根据时间戳返回星期几* param string $time 时间戳* return 星期几*/ function weekday($time) {if(is_numeric($time)){$weekday array(星期日,星期一,星期二,星期三,星期四,星期五,星期六);return…

FastCGI与php-fpm
FastCGI:为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。同ISAPI原理有些类似,就是减少CGI初始化等前置操作的消耗。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行…

postmaster.c 中的 ListenAddresses
在 postmaster.c 中看到这种代码,从Java程序员的角度,看起来是很不爽的: char *ListenAddresses; ...if (ListenAddresses){ char *rawstring; List *elemlist; ListCell *l; ... 到底何…

PHPCMS V9 杂记一
PHPCMS V9加载顺序 PHPCMS V9和V8相比,总体思路方向是一样,不同的是V9把OOP和MVC结合得更加完美。 打开根目录下面的index.php 三行代码,相比V8的 index.php来说 更加清楚, phpcms下面的base.php文件,是一个基础类&…

esp32 camera_利用Phyphox和ESP32蓝牙制作欧姆表测电阻
近日,微主在利用Phyphox和ESP32蓝牙研究热敏电阻的阻值与温度的关系时,需要绘制热敏电阻阻值与时间的关系图像,通过用手捏住或者放开热敏电阻,观察电阻与时间关系图像的变化情况,进而了解温度对热敏电阻的影响。将热敏…

linux tomcat集群配置笔记
趁最后一天假期,配置linux环境下的apache集群,巩固下,免的以后用到又忘记,网上东拼息凑,环境弄好后,整到blog,以便以后用到。 参考来源:http://www.linuxidc.com/Linux/2011-03/32859.htm 我用的版本: httpd-2.2.21.tar.gz apache-tomcat-6.0.32.tar.gz …

spring -- 自定义注解
我们直接通过代码解释自定义注解的使用及各个含义 package com.sysware.cloud.dts.annotation;import java.lang.annotation.*;Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Inherited Documented public interface DtTransactional {/** Whether need to…

angular 字符串转换成数字_蓝盟IT外包,Python算法的一般技术和嵌入式库|python|字符串|key|算法|调用...
近年来,随着python着火,python也开始受到很多程序员的喜爱。 很多程序员已经开始使用python作为第一语言。最近在python上刷问题时,我想去找python的刷问题常用库api和刷问题技术。 和c的STL库文档一样,但很遗憾没有找到。 因此&a…

Mapping Persistence Classes 笔记2---ValueType的形式和映射
2010年5月17日 简介: 前面的笔记着重讲解了实体类以及其class-mapping options,本章笔记将关注值类型的形式以及其OR映射选项。 值类型一般可分为两类:JDK类型和用户自定义类型。本章首先从实体类的使用JDK类型的properties开始,讲…

安装wampserver及配置php,phpmyadmin遇到的问题及解决方法
wampserver 安装好以后,打开,发现appache无法启动,查了一下,发现是前安装过iis,iis使用80端口,打开httpd.conf,把里面所有的80都改成了81,然后appache就可以正常启动了。 再配置wamp…