`

Log4j之LogFactor5简介

 
阅读更多
http://kin111.blog.51cto.com/738881/158612
Log4j中的LogFactor5是Log4j的Appender的一个实现。LogFactor5可以图形的形式表示log信息。并且可以对表示的Log信息进行筛选。适合于使用Log4j时查看log的调试。

本文简单介绍LogFactor5的使用方法。
本文示例使用的Log4j版本为:apache-log4j-1.2.15

1。运行LogFactor5的简单方法:
在有log4j-1.2.15.jar文件的目录下从命令行执行:
java -classpath .;log4j-1.2.15.jar org.apache.log4j.lf5.StartLogFactor5即可

表示出一个GUI图形界面。如下图



从File菜单选OPEN菜单,从文件选择对话框中选择\apache-log4j-1.2.15\examples\lf5\OpeningLogFiles\sample.log文件后,GUI图形界面内容变化,即可表示出log内容。如下图


2。生成可以被LogFactor5GUI图形界面表示的Log方法。
这需要使用Class LF5Appender。这个Class位于org.apache.log4j.lf5包中。
有很多方法可以调用到LF5Appender。
最简单的一种方法如下:
使用DefaultLF5Configurator.configure();
示例代码:

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package examples.lf5.InitUsingDefaultConfigurator;

import org.apache.log4j.Logger;
import org.apache.log4j.NDC;
import org.apache.log4j.lf5.DefaultLF5Configurator;

import java.io.IOException;

/**
 * This class is a simple example of how to configure the LogFactor5
 * logging window using the DefaultLF5Configurator.
 *
 * The DefaultLF5Configurator uses a default configuration file stored
 * in the log4j.jar in order to provide a default configuration for
 * the LF5Appender.
 *
 * @author Brent Sprecher
 */

// Contributed by ThoughtWorks Inc.

public class InitUsingDefaultConfigurator {
    //--------------------------------------------------------------------------
    //   Constants:
    //--------------------------------------------------------------------------

    //--------------------------------------------------------------------------
    //   Protected Variables:
    //--------------------------------------------------------------------------

    //--------------------------------------------------------------------------
    //   Private Variables:
    //--------------------------------------------------------------------------
    private static Logger logger =
            Logger.getLogger(InitUsingDefaultConfigurator.class);

    //--------------------------------------------------------------------------
    //   Constructors:
    //--------------------------------------------------------------------------

    //--------------------------------------------------------------------------
    //   Public Methods:
    //--------------------------------------------------------------------------

    public static void main(String[] args) throws IOException {
        // Configure the LF5Appender using the DefaultLF5Configurator.  This
        // will add the LF5Appender to the root of the Category tree.
        DefaultLF5Configurator.configure();

        // Add an NDC to demonstrate how NDC information is output.
        NDC.push("#23856");
        // Log some information.
        for (int i = 0; i < 10; i++) {
            logger.debug("Hello, my name is Homer Simpson.");
            logger.info("Mmmmmm .... Chocolate.");
            logger.warn("Mmm...forbidden donut.");
        }
        // Clean up NDC
        NDC.pop();
        NDC.remove();

        NDC.push("Another NDC");
        // Log some information.
        logger.fatal("Hello, my name is Bart Simpson.");
        logger.error("Hi diddly ho good neighbour.");
        // Clean up NDC
        NDC.pop();
        NDC.remove();

        // Call methods on both classes.
        InitUsingDefaultConfigurator.foo();
        InnerInitUsingDefaultConfigurator.foo();

        logger.info("Exiting InitUsingDefaultConfigurator.");

    }

    public static void foo() {
        logger.debug("Entered foo in InitUsingDefaultConfigurator class");

        NDC.push("#123456");
        logger.debug("Hello, my name is Marge Simpson.");
        logger.info("D'oh!! A deer! A female deer.");
        // Clean up NDC
        NDC.pop();
        NDC.remove();
    }

    //--------------------------------------------------------------------------
    //   Protected Methods:
    //--------------------------------------------------------------------------

    //--------------------------------------------------------------------------
    //   Private Methods:
    //--------------------------------------------------------------------------

    //--------------------------------------------------------------------------
    //   Nested Top-Level Classes or Interfaces:
    //--------------------------------------------------------------------------

    public static class InnerInitUsingDefaultConfigurator {
        static Logger logger =
                Logger.getLogger(InnerInitUsingDefaultConfigurator.class.getName());

        static void foo() throws IOException {
            // Configure the LF5Appender again. You can call
            // DefaultLF5Configurator.configure() as often as you want
            // without unexpected behavior.
            DefaultLF5Configurator.configure();

            logger.info("Entered foo in InnerInitUsingDefaultConfigurator class.");
        }
    }
}


编译:
javac -classpath .;log4j-1.2.15.jar InitUsingDefaultConfigurator.java
得到InitUsingDefaultConfigurator$InnerInitUsingDefaultConfigurator.class
和InitUsingDefaultConfigurator.class

执行:
java -classpath .;log4j-1.2.15.jar examples.lf5.InitUsingDefaultConfigurator.InitUsingDefaultConfigurator

会启动LogFactor5的图形界面,并把输出Log的内容表示到界面中。如下图:


3,LogFactor5的Log的格式
LogFactor5的Log的格式是固定的。如下示例
中括号的规定的标记。

[slf5s.start]26 Jul 2001 15:54:44,673[slf5s.DATE]
DEBUG[slf5s.PRIORITY]
[slf5s.NDC]
main[slf5s.THREAD]
examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:102)[slf5s.LOCATION]
Hello, my name is Homer Simpson.[slf5s.MESSAGE]

4,LogFactor5的package简介

org.apache.log4j.lf5      主要是appender,configurator,level,封装的log记录类,和启动类等等.
org.apache.log4j.lf5.util      主要是LogFactor5的实用类,读资源,处理流,swing的一些共通处理
org.apache.log4j.lf5.viewer      主要是gui的主窗口,各个dialog,表示log用的table,tablemodel等类
org.apache.log4j.lf5.viewer.categoryexplorer      主要是主窗口左边的category流览tree表示swing组件的支持的类
org.apache.log4j.lf5.viewer.configure 主要是处理最近打开文件历史,配置保存读取类
分享到:
评论

相关推荐

    Log4j2简介及与Log4j效率对比

    ### Log4j2简介 Log4j2是Apache软件基金会推出的日志框架,它是Log4j 1.x的重构版本,旨在提供更为高效且灵活的日志解决方案。与Log4j 1.x相比,Log4j2在设计上进行了重大改进,并解决了Logback等其他日志框架中...

    老生常谈Log4j和Log4j2的区别(推荐)

    下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    对于使用Log4j2的若依框架或者其他任何依赖Log4j2的项目,升级到2.16.0或更高版本是至关重要的,因为不进行更新可能会使系统暴露在严重的安全风险之下。 在描述中,“若依框架”是一个基于Spring Boot的开源企业级...

    logging-log4j2-log4j-2.15.0-rc2.zip maven 资源库

    针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,适用于maven资源库,包括log4j,log4j-core,log4j-api,log4j-1.2-api,log4j-jpa等全套2.15.0 maven资源库jar包。如果是maven本地仓库使用,需要将zip包解压...

    Log4j2学习用到的jar包及apache-log4j-2.19.0-bin.zip

    分别有disruptor-3.3.4.jar(Log4j2异步日志的底层实现)、log4j-api-2.19.0.jar(log4j门面)、log4j-core-2.19.0.jar(log4j实现)、log4j-slf4j-impl-2.19.0.jar(SLF4J与Log4j绑定)、slf4j-api-1.7.30.jar(SLF...

    log4j.jar各个版本

    apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1.jar, apache-log4j.jar, log4j-1.2-api-2.0.2-javadoc.jar, log4j-1.2-api-2.0.2-sources.jar, log4j-1.2-api-2.0.2.jar, log4j-...

    log4j日志驱动包

    log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 # 发送日志给邮件 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender log4j.appender....

    SpringBoot框架配置log4j和log4j2的配置代码

    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File=app.log log4j....

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ``` 3. **使用SLF4J接口**:在Java代码中,通过SLF4J的LoggerFactory获取Logger对象,然后调用相应的日志方法。例如: ```...

    log4j-core-2.15.0.jar log4j-2.15.0-rc2

    Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar 2. 删除旧版本jar cd ./BOOT-INF/lib rm -rf log4j-api-*.jar 3. 上传新版本log4j-api-2.15.0....

    log4j-api-2.12.4.ja和log4j-core-2.12.4.jar

    Log4j是Java编程语言中最常用的日志记录框架之一,由Apache软件基金会开发。它提供了灵活的日志记录功能,使得开发者能够轻松地控制日志信息的输出格式、输出位置以及输出级别。此次提及的`log4j-api-2.12.4.jar`和`...

    Log4j2、Fastjson、Log4j的BurpSuite插件亲测有效

    Log4j、Log4j2和Fastjson的安全性问题在过去曾引起广泛关注,例如Log4j2的CVE-2021-44228(也被称为Log4Shell漏洞),这是一个远程代码执行漏洞,影响了许多使用Log4j2的系统。这个插件可能就是为了检测和利用这些...

    Log4J完整说明和配置

    #### 一、Log4J简介 Log4J是Apache的一个开源项目,用于提供灵活的日志记录功能。通过它,开发者能够控制日志信息的输出级别、输出目的地(控制台、文件等)、格式化方式等。本文将围绕一份示例配置文件来详细介绍...

    log4j-API-最新稳定版本log4j-1.2.17

    3. **Appenders**:Appenders是Log4j的核心组件之一,负责将日志消息输出到不同的目的地,如控制台、文件、网络、电子邮件等。 4. **Layouts**:Layouts决定了日志事件的格式,如简单的文本格式、XML或JSON,以便于...

    log4j-api-2.17.1.jar和log4j-core-2.17.1.jar

    Log4j2的亮点之一是其可插拔架构,这使得它可以灵活地扩展和配置。通过XML、JSON或YAML配置文件,开发者可以定制日志级别(TRACE、DEBUG、INFO、WARN、ERROR、FATAL和OFF),设置Appender和Layout,甚至添加Filter来...

    修复log4j漏洞log4j2下载最新log4j2.16.0下载 log4j-api-2.16.0.jar

    apache下载太慢,特搬到国内下载。修复log4j漏洞log4j2下载最新log4j2.16.0下载

    log4j-2.18.0

    《log4j-2.18.0:修复重大安全漏洞的紧急更新》 在IT领域,安全性始终是首要关注的问题。近期,一个名为“log4j2”的严重安全漏洞引发了广泛关注,它影响了所有log4j2版本,从2.0开始直到2.18.0版本之前。这个漏洞...

    log4j.properties(完整版) log4j.properties(精简版)

    - **设置Layout**:如`log4j.appender.stdout.layout=org.apache.log4j.PatternLayout`,并定义其模式`log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n`,决定日志的显示格式。...

    SSM整合中的Log4j日志的配置详情

    四、在 Maven 项目中引入 Log4j 依赖 在 Maven 项目中,需要引入 Log4j 依赖项,以便使用 Log4j。下面是一个基本的 Maven 依赖项配置: ``` &lt;groupId&gt;log4j &lt;artifactId&gt;log4j &lt;version&gt;1.2.16 ``` 这个配置...

    apache-log4j-2.17.0 核心jar包

    Log4j 是一个日志记录框架,Log4j 2 是对 Log4j 的升级,提供了重大改进,超越其前身 Log4j 1.x,并提供许多其它现代功能 ,例如对标记的支持、使用查找的属性替换、lambda 表达式与日志记录时无垃圾等。 Apache ...

Global site tag (gtag.js) - Google Analytics