Java进阶学习(2)——log4j的学习和使用

Java进阶学习(2)——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("调试级别日志");
    }
}

  

时间: 2024-12-23 20:14:31

Java进阶学习(2)——log4j的学习和使用的相关文章

java进阶学习计划

断断续续使用java也已经有两年了,算是最熟悉的开发工具了.但写的代码都是以项目为导向,追求work around,还需要打好基础才能长远发展. 大致的进阶学习计划, 阶段1:深究java语法,阅读常用库的jdk源码,了解jvm机制; 阶段2:阅读基于java的开源框架源码,各种framework,container. 希望可以坚持下来,经常更新技术博客. java进阶学习计划

Java:进阶学习(1)——网络编程

Java:进阶学习(1)--网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket方法 getInetAddress();    远程服务端的IP地址 getPort();    远程服务端的端口 getLocalAddress()    本地客户端的IP地址 getLocalPort()    本地客户端的端口 getInputStream();   

别再互联网寒冬了,还不如学习一下这些Java进阶技术。

天天互联网寒冬,其实哪里有什么互联网寒冬,只不过是你穿的少而已,有那个时间去关心互联网寒冬会倒下多少人,还不如学习一下这些Java进阶技术. 其涵盖的技术点比较全面,并非一朝一夕能够全部覆盖到的.对于一些还没有入门或者刚刚入门的Java后端工程师,如果一下子需要学习如此多的知识,想必很多人会望而却步. 本文截取了技能树中的一些关键技能点,大家都知道,想成为牛逼的JAVA开发,就是JAVA架构师了.本文小编来针对JAVA从业朋友分享JAVA架构进阶之路. JAVA架构之路这块,主要有六大专题,先给

20145216史婧瑶《Java程序设计》第9周学习总结

20145216 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. JDBC目的:让Java程序设计人员在撰写数据库操作程序时可以有个统一的接口,无须依赖特定的数据库API,“写一个Java程序,操作所有数据库”. 联机数据库,需要在classpath中设定JDBC驱动程序. 基本数据库操作相关JDBC接口或类是为位于java.sql包中. Connection接口的操作对

20145321 《Java程序设计》第9周学习总结

20145321 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC 1.JDBC简介: JDBC是Java联机数据库的标准规范,它定义一组标准类和接口,应用程序需要联机数据时调用 这组标准API. 应用程序通过通信协议对数据库进行指令交换,以进行对数据的的增删查找. 2.JDBC标准分为两个部分: JDBC应用开发者接口 JDBC驱动程序开发者接口 更换数据库时只需要更换驱动程序的JAR文档,无需修改应用程序本身. 3.驱动程序4种类型: JDBC

20145239 《Java程序设计》第9周学习总结

20145239 <Java程序设计>第9周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与接口,应用程序需要联机数据库时调用这组标准API. 2.JDBC标准:JDBC应用程序开发者接口和JDBC驱动程序开发者接口. 连接数据库 1.要连接数据库系统,必须要有厂商操作的JDBC驱动程序,必须在CLASSPATH中设定驱动程序JAR文档. 2.操作Driver接口的对象是JDBC进行数据库存取的起点.Connection接

Log4j简单学习笔记

log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常用级别的划分:Debug,Info,Warn,Error,Fatal这5个级别由低到高,如果配置的级别为"INFO"那么"Debug"级别的信息则不会显示"依次类推. 示例代码: @Test public void testLevel() { log.debu

20145326 《Java程序设计》第9周学习总结

20145326 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 一.JDBC入门 1.JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性,数据库本身是个独立运行的应用程序,你撰写的应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找.通常你的应用程序会利用一组专门与数据库进行通信协议的链接库,以简化与数据库沟通时的程序撰写.有时候,更换数据库的需求并不是没有,应用

20155208徐子涵 2016-2017-2 《Java程序设计》第9周学习总结

20155208徐子涵 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. JDBC目的:让Java程序设计人员在撰写数据库操作程序时可以有个统一的接口,无须依赖特定的数据库API,"写一个Java程序,操作所有数据库". 联机数据库,需要在classpath中设定JDBC驱动程序. 基本数据库操作相关JDBC接口或类是为位于jav