Java进阶学习——log4j的学习和使用

简介Loj4j

Log4j的组成

Log4j主要由三大组组件构成:

  • Logger:

    • 负责生成日志,并能够对日志信息进行分类筛选,通俗的讲就是决定什么日志信息应该被输出,什么日志信息应该被忽略
  • Appender:
    • 定义了日志信息输出的目的地,指定日志信息应该被输出到什么地方,这些地方可以是控制台、文件或网络设备等。
  • Layout:
    • 指定日志信息的输出格式

说明:

  一个Logger可以有多个Appender,这意味着日志信息可以被输出到多个设备上,并且每个Appender都对应一种Layout,Layout决定了信息的输出格式。

定义配置文件

  要在应用程序中使用Log4j,首先要在一个配置文件中配置Log4j的各个组件,然后就可以在程序中通过Log4jAPI操作日志。

  Log4j支持编程方式、XML文件、属性文件对组件进行配置,我们在此处使用属性文件进行配置:

log4j.rootLogger = DEBUG,rootAppender,FileAppender
#rootLogger是所有Logger组件的祖先
log4j.logger.MyLogger =DEBUG,rootAppender,FileAppender
#自定义的Logger组件

#配置Appender
log4j.appender.rootAppender = org.apache.log4j.ConsoleAppender
log4j.appender.FileAppender = org.apache.log4j.FileAppender

log4j.appender.DailyRollingFileAppender = org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingFileAppender = org.apache.log4j.RollingFileAppender
log4j.appender.WriterAppender = org.apache.log4j.WriterAppender

#配置FileAppender的文件保存位置
log4j.appender.FileAppender.File=log.txt

#配置Layout组件
log4j.appender.rootAppender.layout = org.apache.log4j.SimpleLayout
log4j.appender.FileAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.FileAppender.layout.ConversionPattern = %t %p - %m%n

在程序中使用Log4j

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

public class Main {
    //获得RootLogger
    static Logger logger = Logger.getRootLogger();
    public static void main(String[] args) {
        //BasicConfigurator.configure(); 使用默认的配置信息配置Log4j环境
        //使用属性文件配置Log4j环境
        PropertyConfigurator.configure(Main.class.getResource("log4j.properties"));
        //Logger的五种输出级别日志
        logger.fatal("致命错误级别日志");
        logger.error("错误级别日志");
        logger.warn("警告级别日志");
        logger.info("提醒级别日志");
        logger.debug("调试级别日志");
    }
}

  

Java进阶学习:log4j的学习和使用的更多相关文章

  1. Java进阶学习:将文件上传到七牛云中

    Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...

  2. Log4j简单学习笔记

    log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...

  3. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  4. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  5. 201521123051 《Java程序设计》 第二周学习总结

    1. 本周学习总结 1.学会使用码云:学会如何将项目同步到码云中以及从码云上的项目保存到本地. 2.各数据类型的使用. 3.运算符和表达式的使用. 4.string创建之后不可在修改. 5.Java程 ...

  6. 201521123011 《Java程序设计》 第二周学习总结

    1. 本周学习总结 记录本周学习中的重点 原则:少而精,自己写.即使不超过5行也可,但请一定不要简单的复制粘贴. 知道了c语言中string的定义与java不同的地方. 学习了枚举,数组等方法 Tnt ...

  7. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  8. 《java核心技术36讲》学习笔记-------杨晓峰(极客时间)

    非常荣幸作为晓峰哥的同事,之前就看过这篇文章,重写读一遍,再学习学习. 一.开篇词 初级.中级:java和计算机科学基础.开源框架的使用:高级.专家:java io/nio.并发.虚拟机.底层源码.分 ...

  9. 20155334 2016-2017-2 《Java程序设计》第九周学习总结

    20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...

随机推荐

  1. C# : 资源文件(多用于处理国际化)

    1.建立Resource文件夹,添加资源文件 处理国际化的问题,我们可以添加多个资源文件,如下就是添加一个中文的,一个英文的. 2.向其中添加键值对. 3.取值 CultureInfo uiCultu ...

  2. BAT都来参加的 DevOps Master 培训

    原文:http://www.sohu.com/a/128425731_262549 自高效运维社区开设 DevOps Master 认证培训以来,已经总共有120多人拿到证书,其中在今年春节后,有68 ...

  3. c++打印蛇形矩阵

    一个m*n的矩阵里按照下图形式填充,最后形成的矩阵即为蛇形矩阵,下图是m=4, n =5时的蛇形矩阵: 方法一:逐层循环 #include <iostream> using namespa ...

  4. windows和linux下目录分隔符兼容问题(换行回车兼容)

    windows和linux下目录分隔符兼容 DIRECTORY_SEPARATOR 换行回车兼容 PHP_EOF

  5. 初识C++之虚函数

    1.什么是虚函数 在基类中用virtual关键字修饰.并在一个或多个派生类中被又一次定义的成员函数.使用方法格式为: virtual 函数返回类型 函数名(參数表) { 函数体 } 虚函数是实现多态性 ...

  6. iOS中文输入法多次触发的问题及解决方案

    最近要在移动端实现一个文本框实时搜索的功能,即在文本框里每输入一个字,就向服务器请求一次搜索结果.暂且不考虑性能优化问题,第一时间想到的是用keyup实现: $('input').on('keyup' ...

  7. 启动avd Android模拟器缓慢 HAXM自动安装失败

    问题1.更新Android sdk镜像,腾讯镜像地址 android-mirror.bugly.qq.com 使用方法如图 问题2.自动更新HAXM失败解决方法 手动下载地址 http://softw ...

  8. oracle浅析导致数据库性能问题的常见原因

    ㈠ 不合理的大表全表扫描 详见:点击打开链接 v$session_longops视图记录了超过6秒的所有SQL语句        这其中绝大部是全表扫描的语句! ㈡ 语句共享性不好 常出没在OLTP, ...

  9. Debian Epson L455 打印机

    要使用打印机必须要在本机(或局域网其他机器)上安装打印服务,L455是网络打印机,需要IPP协议,而mDNS-scan和avahi-utils是用来发现网络打印机的服务,由于我是摸索着安装的,没太研究 ...

  10. eclipse +cygwin+C++

    用Android eclipse做C++开发,一开始提示no binary的错误,貌似是因为没有编译二进制出来,我本机装了cygwin, 在命令台输入gcc,无显示,说明我没有把cygwin/bin的 ...