一个最最简单的 log4j 的 入门级使用案例
看了比较多的文档和博客,感觉这篇博客写得比较好,比较容易懂,先 mark 一下,回头做一个记录。
文章1:http://www.cnblogs.com/rushoooooo/archive/2011/08/29/2157361.html
文章2:http://www.iteye.com/topic/378077
写这样一个小例子,是为了避免大家对 log4j 望而生畏。
log4j这种东西,个人觉得 Java 初学者不需要了解太多太深入,会用就可以了。但是就是在使用的过程中,配置的时候会遇到种种的问题。以下结合了我个人在使用 log4j 的过程中总结出的一个 HelloWorld 的例子。供大家参考。
使用 log4j 应把握以下几点:
1、日志级别是可以配置的,通过配置日志级别可以控制日志的输出,用在最多的地方就是可以控制调试信息是否输出上;
2、使用 logger.info 等这种方式输出日志比使用 System.out.println() 这种方式要好;
3、初学不要使用 log4j 2版本的,因为 2 版本较 1 版本而言改动较大,给学习增加了难度。
本示例中使用的是 log4j-1.2.17.zip 。
第 1 步:
把 log4j-1.2.17.zip 解压,把其中的 log4j-1.2.17.jar 这个包加入到项目中的 buildpath 下(这里我也想不清楚是个什么概念,让大家见笑了。总之就是让你的项目能够引用到 log4j-1.2.17.jar 这个 jar 包里面的类);
第 2 步:
在这个目录下 log4j-1.2.17.zip\apache-log4j-1.2.17\examples 找到 sort2.properties 文件,将其更名为 log4j.properties,复制到项目的源代码 src 跟路径下。
之所以使用 sort2.properties 这个配置文件是因为我个人觉得这一份配置文件的输出信息已经比较详细了;
第 3 步:
在 log4j.properties 文件的第 1 行 配置日志级别,日志级别总共有 5 种,你们都懂地,我就不罗嗦了;

第 4 步:
在测试类里面声明一个日志记录器:
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(Anjudianping.class);
随后在须要输出日志的地方,就可以这样使用:
logger.debug("request 的 getParameter() 方法接收到的参数值:" + content);
以上就完成地为你的项目添加了 log4j 日志输出。关于 log4j 的一些详细介绍,网上有很多资料了,在这里就不过多介绍。本文只是一个上手的例子。大家可以根据自己在网络上查找到的资料来更改 log4j.properties 这个属性文件的配置,以符合自己项目的日志输出需求。
一个最最简单的 log4j 的 入门级使用案例的更多相关文章
- 10分钟完成一个最最简单的BLE蓝牙接收数据的DEMO
这两天在研究蓝牙,网上有关蓝牙的内容非常有限,Github上的蓝牙框架也很少很复杂,为此我特地写了一个最最简单的DEMO,实现BLE蓝牙接收数据的问题, 不需要什么特定的UUID, 不需要什么断开重连 ...
- IoC原理-使用反射/Emit来实现一个最简单的IoC容器
从Unity到Spring.Net,到Ninject,几年来陆陆续续用过几个IoC框架.虽然会用,但也没有一直仔细的研究过IoC实现的过程.最近花了点时间,下了Ninject的源码,研究了一番,颇有收 ...
- [oracle]一个最简单的oracle存储过程"proc_helloworld"
1.编写.编写一个最最简单的存储过程,给它起个名字叫做proc_helloworldCREATE OR REPLACE PROCEDURE proc_helloworldISBEGIN DBMS_ ...
- 【spring】-- 手写一个最简单的IOC框架
1.什么是springIOC IOC就是把每一个bean(实体类)与bean(实体了)之间的关系交给第三方容器进行管理. 如果我们手写一个最最简单的IOC,最终效果是怎样呢? xml配置: <b ...
- Android自定义view(一):制作一个最最最简单的自定义view
转载:https://blog.csdn.net/wsyizmao/article/details/78491422 浅谈安卓自定义view(一):制作一个最最最简单的自定义view 对于安卓程序员来 ...
- Dubbo入门介绍---搭建一个最简单的Demo框架
Dubbo入门---搭建一个最简单的Demo框架 置顶 2017年04月17日 19:10:44 是Guava不是瓜娃 阅读数:320947 标签: dubbozookeeper 更多 个人分类: D ...
- Win32 程序开发入门:一个最简单的Win32程序
一.什么是 Win32 Win32 是指 Microsoft Windows 操作系统的 32 位环境,与 Win64 都为 Windows 常见环境. 这里再介绍下 Win32 Applicatio ...
- python从入门到大神---4、python3文件操作最最最最简单实例
python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...
- OBS插件学习入门:一个非常简单的、调节音量的filter
一个非常简单的.调节音量的filter,非线性调节: #include <obs-module.h> #include <math.h> struct volume_data ...
随机推荐
- oracle DBID,SID,DB_NAME,DB_DOMAIN,INSTANCE_NAME,DB_UNIQUE_NAME, SERVICE_NAMES 及监听参数的说明
DBID,SID,DB_NAME,DB_DOMAIN,INSTANCE_NAME,DB_UNIQUE_NAME, SERVICE_NAMES 及监听参数的说明 DB 相关的: DBID, SIDPFI ...
- 从Android手机中取出已安装的app包,导出apk
从Android手机中取出已安装的app包,导出apk TAG:Android,提取,apk,adb,pm,root,导出apk 假设有这样一个场景,A君看到你手机上一个实用APP,想要安装到自己手机 ...
- ssm项目的创建思路
·DAO层: 代码:pojo.映射文件.接口文件——Mybatis逆向工程自动生成 配置:ApplicationContext-dao.xml——数据源.连接池.会话工厂.mapper包扫描 ·Ser ...
- mysql 小数位
1 select convert(t/100,decimal(15,2)) as a from user (1) convert() 一.在mysql操作中我们经常需要对数据进行类型转换.此时我 ...
- FZUOJ-2275 Game
Problem 2275 Game Accept: 159 Submit: 539 Time Limit: 1000 mSec Memory Limit : 262144 KB Pro ...
- BlockingQueue 阻塞队列(生产/消费者队列)
1:BlockingQueue的继承关系 java.util.concurrent 包里的 BlockingQueue是一个接口, 继承Queue接口,Queue接口继承 Collection Blo ...
- 一gradle创建SSM项目——依赖包
build.gradle compile:编译时必须. runtime:运行时必须,包括编译时. testCompile:测试编译时必须. testRuntime:测试运行时必须,包括编译时. 注:此 ...
- [转]Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) --有部份地方有问题
Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) [转载]原文地址:http://canonind.blog.51cto.com/8239025/1883066 一.安装前 ...
- Winfrom中数据的双向绑定(使用INotifyPropertyChanged)
在WPF中新建项目是自动实现了INotifyPropertyChanged接口,用于数据绑定时非常的方便在winfrom中也可以实现INotifyPropertyChanged接口 将需要绑定的字段写 ...
- Tensorflow学习笔记3:卷积神经网络实现手写字符识别
# -*- coding:utf-8 -*- import tensorflow as tf from tensorflow.examples.tutorials.mnist import input ...