在程序中使用log4j

1.导入包
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

2.获取log实例
 Logger logger = Logger.getLogger

3配置log4j.properties
PropertyConfigurator.configure(log4j2.properties路径);

 #\u5B9A\u4E49DEBUG\u4F18\u5148\u7EA7\uFF0CR\u4E3A\u65E5\u5FD7\u8F93\u51FA\u76EE\u7684\u7684
log4j.rootLogger=DEBUG, R
#\u8BBE\u7F6E\u65E5\u5FD7\u8F93\u51FA\u7C7B\u578B,\u4E3A\u6587\u4EF6\u7C7B\u578B
log4j.appender.R=org.apache.log4j.FileAppender
#\u8BBE\u7F6E\u65E5\u5FD7\u6587\u4EF6\u540Dmy.log
log4j.appender.R.file=my.log
#\u6BCF\u6B21\u5728\u6587\u4EF6\u5C3E\u5199\u5165\u65B0\u7684\u65E5\u5FD7\u4FE1\u606F
log4j.appender.R.Append=true
#\u65E5\u5FD7\u8F93\u51FA\u4FE1\u606F\u683C\u5F0F\u7C7B\u578B
log4j.appender.R.layout=org.apache.log4j.PatternLayout
#\u65E5\u5FD7\u8F93\u51FA\u4FE1\u606F\u683C\u5F0F\u4E3A \u6362\u884C\u3001\u6362\u884C\u3001\u65E5\u671F\u3001\u4F18\u5148\u7EA7\u3001[\u7C7B\u540D]\u3001\u65E5\u5FD7\u4FE1\u606F\u3001\u6362\u884C
log4j.appender.R.layout.ConversionPattern=%n%n%d %p [%c] %r %n#%m%n
package LogTest;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator; class Log {
// Logger实例
private Logger loger;
// 将Log类封装成单实例的模式,独立于其他类。以后要用到日志的地方只要获得Log的实例就可以方便使用
private static Log log; // 构造函数,用于初始化Logger配置需要的属性
private Log() {
// 获得当前目录路径
String filePath = this.getClass().getResource("/").getPath();
// 找到log4j.properties配置文件所在的目录(已经创建好)
filePath = filePath.substring(1).replace("bin", "src");
// 获得日志类loger的实例
loger = Logger.getLogger(this.getClass());
// loger所需的配置文件路径
PropertyConfigurator.configure(filePath + "log4j.properties");
} static Log getLoger() {
if (log != null)
return log;
else
return new Log();
} // 测试函数
public static void main(String args[]) {
Log log = Log.getLoger();
try {
// 引发异常
int a = 2 / 0;
} catch (Exception e) {
// 控制台打印异常信息
e.printStackTrace();
// 写入到日子文件
//System.out.println(e.getMessage());
log.loger.info("error",e); }
} }

  

logger.debug("Here is some DEBUG");

logger.info("Here is some INFO");

logger.warn("Here is some WARN");

logger.error("Here is some ERROR");

logger.fatal("Here is some FATAL");

%m 输出代码中指定的信息 如 log.error("error")
%p 输出优先级 就是上面提到的DEBUG,INFO等
%c 输出所在类的全名
%r 输出自应用启用到输出该log信息耗费的时间(毫秒)
%t 输出产生该日子事件的线程名
%n 输出换行符号 Windows平台为 "rn",unix平台“n"
%d 输出日志时间点 默认格式是ISO8601 可以自定义格式,比如%d{yyy MM dd hh:mm:ss,sss}

Java Log4j日志使用的更多相关文章

  1. java Log4j日志配置详解大全

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  2. java log4j日志配置

    1.首先看pom.xml文件,需要以下配置 <dependency> <groupId>log4j</groupId> <artifactId>log4 ...

  3. java log4j 日志文件

    开发中经常会用到log日志文件,根据业务需要可能不产生很大日志文件给维护和[排错带来了麻烦.所以我们希望能够每天或每个月产生一个日志文件,这样文件不至于过大. 或者根据日志文件大小来判断,超过规定大小 ...

  4. java log4j基本配置及日志级别配置详解

    java log4j日志级别配置详解 1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾 ...

  5. Java 标准日志工具 Log4j 的使用(附源代码)

    源代码下载 Log4j 是事实上的 Java 标准日志工具.会不会用 Log4j 在一定程度上可以说是衡量一个开发人员是否是一位合格的 Java 程序员的标准.如果你是一名 Java 程序员,如果你还 ...

  6. Java基础学习补充 -- 异常处理和log4j日志

    Java中的异常处理 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. Java中所有异常的基类Throwable:Throwable又分为Error类和Excepti ...

  7. Java学习笔记 DbUtils数据库查询和log4j日志输出 使用

    DbUtils使用 QueryRunner DbUtils中定义了一个数据库操作类QueryRunner,所有的数据库操作CRUD都是通过此类来完成. 此类是线程安全的 方法名 对应sql语句 exc ...

  8. 基于java配置log4j日志详解

    1.Log4j 1.1了解Log4j Log4j是Apache的一个开源项目,通过使用log4j,我们可以控制日志信息输送的目的地可以是控制台.文件.GUI组件,我们也可以控制每一条日志的输出格式,通 ...

  9. Log4j log for java(java的日志) 的使用

    log4j的使用,Log4j log for java(java的日志) 是java主流的日志框架,提供各种类型,各种存储,各种格式,多样化的日志服务. 可以再Apache官网下载得到. 我们下载lo ...

随机推荐

  1. StringBuffer类

    String的内容一旦声明则不可改变,如果改变,则改变的肯定是String的引用地址. 如果一个字符串要被经常改变,则就必须使用StringBuffer类. 在String类中可以通过“+”进行字符串 ...

  2. 比较详细Python正则表达式操作指南(re使用)

    比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...

  3. ecshop 的transport.js 与jqueyr冲突

    1111 {insert_scripts files='common.js,global.js,transport.js'} <script type="text/javascript ...

  4. Mixing ASP.NET and MVC routing

    Here is the solution I settled on. I installed the NuGet Microsoft.AspNet.FriendlyUrls package. Then ...

  5. MIME类型(JSP中)

    什么是MIME类型-在把输出结果传送到浏览器上的时候,浏览器必须启动是党的应用程序来处理这个输出文档.这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成.在HTTP中,MIME类型被定义在Co ...

  6. Centos6.5搭建java开发环境

    一.安装jdk 1.查看Linux自带的JDK是否已安装 java –version 如果出现openjdk,最好还是先卸载掉openjdk,在安装sun公司的jdk. 2.查看jdk信息 rpm - ...

  7. JS的splice()方法和slice()方法

    在w3c school中描述如下: 定义和用法splice() 方法用于插入.删除或替换数组的元素.语法arrayObject.splice(index,howmany,element1,....., ...

  8. str_replace vs preg_replace

    转自:http://benchmarks.ro/2011/02/str_replace-vs-preg_replace/ 事实证明str_replace确实比preg_replace快. If you ...

  9. 今天<s:hidden>突然能用了

    曾经好几个作业中都想要用<s:hidden>隐形传值,一直没有成功. 今天放弃使用了,竟然成功了. 我放弃使用居然成功了,原来只要设置好getter和setter之后就不用管了,只要变量名 ...

  10. hdu.1111.Secret Code(dfs + 秦九韶算法)

    Secret Code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...