当前位置: 首页 > news >正文

log4j 转载

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

官方站点:http://logging.apache.org/log4j/

Log4j配置:

第一步:加入log4j-1.2.8.jar到lib下。

第二步:在CLASSPATH下建立log4j.properties。内容如下:

定义DEBUG优先级,R为日志输出目的的

log4j.rootLogger=DEBUG, R

设置日志输出类型,为文件类型

log4j.appender.R=org.apache.log4j.FileAppender

设置日志文件名my.log

log4j.appender.R.file=weather.log

每次在文件尾写入新的日志信息

log4j.appender.R.Append=true

日志输出信息格式类型

log4j.appender.R.layout=org.apache.log4j.PatternLayout

日志输出信息格式为 换行、换行、日期、优先级、[类名]、日志信息、换行

log4j.appender.R.layout.ConversionPattern=%n%n%d%p[%c]-%m%n
第三步:定义日志类Log.Java

[java] view plain copy
package com.kyny.weather.log;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

/**

  • 日志类
  • @author zhoucan
  • */
    public class Log {

    //Logger实例
    public Logger logger = null;

    //将Log类封装为单例模式
    private static Log log;

    //构造函数,用于初始化Logger配置需要的属性
    private Log() {
    //获得当前目录路径
    String filePath=this.getClass().getResource("/").getPath();
    //找到log4j.properties配置文件所在的目录(已经创建好)
    filePath=filePath.substring(1).replace("bin", "src");
    //获得日志类logger的实例
    logger=Logger.getLogger(this.getClass());
    //logger所需的配置文件路径
    PropertyConfigurator.configure(filePath+"log4j.properties");
    }

    public static Log getLogger() {
    if(log != null) return log;
    else return new Log();
    }
    }
    第四步:使用Log

Java代码:

[c-sharp] view plain copy
Log log = Log.getLogger();
log.logger.error("XXX", e);
OK,这是我在做项目的时候使用Log4j的用法,功能简单。我也不多说了,有关更详细的资料参见网上,^_^

相关文章:

  • javascript常识
  • Eclipse 安装反编译插件jadclipse
  • 从交互式到智能触控:品道智宴冰箱引领新生活
  • 一个样例让你明确原型对象和原型链
  • 网络营销经历过哪三次革命?
  • 自己定制Linux发行版(资料)
  • UVA 10539 Almost Prime Numbers
  • HashMap和HashTable的区别
  • [js高手之路] dom常用API【appendChild,insertBefore,removeChild,replaceChild,cloneNode】详解与应用...
  • Linux文件系统之新建分区(fdisk命令)
  • IIS并发连接数和数据库连接池
  • 架构探险——从零开始写Java Web框架》第二章照作
  • Linux下基于nw音乐电台
  • Easyui datagrid 分页参数自定义名称+额外参数
  • 在Linux环境下mysql的root密码忘记解决方法
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • avalon2.2的VM生成过程
  • ES6 学习笔记(一)let,const和解构赋值
  • GitUp, 你不可错过的秀外慧中的git工具
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • java小心机(3)| 浅析finalize()
  • leetcode讲解--894. All Possible Full Binary Trees
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Nacos系列:Nacos的Java SDK使用
  • nodejs:开发并发布一个nodejs包
  • Rancher-k8s加速安装文档
  • 阿里研究院入选中国企业智库系统影响力榜
  • 给Prometheus造假数据的方法
  • 关于for循环的简单归纳
  • 面试遇到的一些题
  • 扑朔迷离的属性和特性【彻底弄清】
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 微信开源mars源码分析1—上层samples分析
  • 物联网链路协议
  •  一套莫尔斯电报听写、翻译系统
  • 一天一个设计模式之JS实现——适配器模式
  • 在Mac OS X上安装 Ruby运行环境
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #include<初见C语言之指针(5)>
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (C语言)fread与fwrite详解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (二)JAVA使用POI操作excel
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (三十五)大数据实战——Superset可视化平台搭建