`

log4j扩展:独立的Repository

 
阅读更多

Logger Repository从字面上理解,它是一个Logger的容器,它会创建并缓存Logger实例,从而具有相同名字的Logger实例不会多次创建,以提高性能。

Log4J支持两种配置文件:properties文件和xml文件。Configurator解析配置文件,并将解析后的信息添加到Repository中,log4j本身提供的LogManager最终将Repository和Configurator[/size][size=10pt;]整合在一起。

我们在使用log4j日志组件的时候,有时需要定义自身的Repository,这就需要定义自己的LogManager,去加载我们自身的配置文件。

public final class Log4jManager
{
    private static Object guard = null;

    private static RepositorySelector repositorySelector;

    static
    {
        Hierarchy h = new Hierarchy(new RootLogger((Level) Level.DEBUG));
        repositorySelector = new DefaultRepositorySelector(h);
        doConfigure();
    }

    //其他方法和LogManager类似,可以参考LogManager
    //...

    //加载配置文件
    public static void doConfigure()
    {
        URL url = null;
        

        //LogConstant.LOG_CONGFIG_FILE_PATH即为定义的配置文件名       
        url = Log4jManager.class.getClassLoader().getResource(
            LogConstant.LOG_CONGFIG_FILE_PATH);
        if (url != null)
        {
            try
            {
                OptionConverter.selectAndConfigure(url, null,
                    Log4jManager.getLoggerRepository());
            }
            catch (NoClassDefFoundError e)
            {
                LogLog.warn("Error during default initialization", e);
            }
        }
        else
        {
            LogLog.debug("Could not find resource: ["
                + LogConstant.LOG_CONGFIG_FILE_PATH + "].");
        }

    }
}
 
分享到:
评论

相关推荐

    log4j完全参考手册

    #### 四、log4j应用实例 为了更好地理解log4j的应用场景,下面给出一个简单的Java程序示例,演示如何使用log4j记录日志信息。 ```java import org.apache.log4j.Logger; import org.apache.log4j....

    log4net 日志操作 源码

    - **Repository**:Repository管理所有Loggers和Appenders,它是整个log4net系统的容器。 ### 3. log4net 配置 log4net的配置通常通过XML配置文件进行,例如`log4net.config`。下面是一个简单的配置示例: ```xml...

    log4net1.2.11.dll 和 log4net1.2.11源码

    log4net是Apache软件基金会的log4j项目在.NET环境下的移植,它继承了log4j的强大功能,并针对.NET平台进行了优化。 **log4net核心概念** 1. **配置灵活性**:log4net的核心优势在于其高度的可配置性。开发者可以...

    log4net demo

    它最初是基于Java的log4j项目,由Apache软件基金会开发,后来被移植到.NET平台上。在.NET世界里,log4net因其强大的功能和易用性而备受推崇。 ### log4net配置 配置log4net是使用它的关键步骤。log4net的配置可以...

    log4net c#

    这个框架源自Java平台的log4j,但在C#环境中得到了良好的移植和扩展,使得.NET开发者能够方便地集成日志系统到他们的应用程序中。 ### 1. log4net 的基本概念 - **日志级别(Logging Levels)**: 包括ALL、DEBUG、...

    log4net-1.2.12-src.zip

    log4net是.NET平台上的一种日志记录工具,其设计理念源于Java的log4j。它的主要特点是可配置性高,支持多种输出方式(如文件、控制台、数据库等),并且具备日志级别控制、过滤器等功能,使得日志管理和维护变得更加...

    log4net使用43

    最初,它是Java平台上log4j项目的.NET移植版本,随着时间的发展,log4net已经成为了.NET环境中非常成熟且广泛使用的日志解决方案之一。 #### 二、官方资源 - **官网地址**:[http://logging.apache.org/log4net]...

    Log4Net配置1

    Log4Net是一个开源的日志记录框架,源自Apache的log4j项目,并被移植到Microsoft .NET环境中。它提供了一个强大的工具来帮助程序员将日志信息输出到多种目标,如控制台、文件、电子邮件、数据库等。Log4Net的最新...

    repository2

    3. **commons-logging**:Apache Commons Logging是Java的日志抽象层,允许开发者在不修改代码的情况下更换底层日志实现,如Log4j或java.util.logging。 4. **xmlenc**:XML Encryption是处理XML数据加密的标准,...

    repository\org

    8. **apache**: 这很可能包含了Apache软件基金会的多个项目,如HTTP服务器、Commons库、Log4j等,这些是Java开发者常用的工具和组件。 9. **easymock**: EasyMock是一个模拟对象库,用于单元测试,它允许开发者创建...

    spring mVC项目

    通过配置log4j.properties或log4j.xml文件,可以控制哪些类或方法的日志输出,以及日志保存的位置和格式。 项目可能包含以下主要组成部分: 1. **配置文件**:如web.xml,用于配置DispatcherServlet;spring配置...

    ansible自动部署zabbix客户端 脚本

    LogFile=/var/log/zabbix/zabbix_agentd.log ``` 运行Ansible playbook时,只需在控制节点上执行: ```bash ansible-playbook deploy_zabbix_agent.yml ``` 这个过程会自动添加Zabbix的YUM仓库,安装Zabbix Agent...

    Pos-Team2:repository for 陈全保 team

    8. **日志和错误处理**:使用如Log4j或SLF4J记录系统日志,便于追踪和诊断问题。同时,良好的错误处理机制可以提高系统的健壮性。 9. **安全性**:POS系统涉及金钱交易,因此安全极为重要。开发者需要关注数据加密...

    SSM三大框架整合详细教程

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ``` **3.4 控制器与服务层** 接下来,需要编写控制器和业务...

    S2SH注解 +maven 小例子

    在这个项目中,Maven作为构建工具,Log4j用于日志管理,MySQL则是后台数据库。下面将详细介绍这些知识点。 1. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,它继承了Struts1的优点并吸收了其他框架的...

    Activiti-rest所有接口描述

    - 修改`WEB-INF/classes/log4j.properties`文件,在配置中增加日志级别设置,如将`log4j.rootLogger`的配置调整为`INFO, CA,D`。 - **目的**: - 配置日志输出等级为INFO,并开启DEBUG模式,以便于调试和追踪问题...

    maven依赖包(用于博客项目)

    - **Log4j / SLF4J**: 日志记录框架,用于调试和跟踪应用行为。 - **Jackson / Gson**: JSON序列化和反序列化库,用于处理HTTP请求和响应中的JSON数据。 4. **构建流程**: Maven提供了诸如`mvn clean`(清理目标...

    maven_repository.zip

    7. **Log4j或Logback**:日志记录工具,用于调试和监控。 8. **JUnit**:单元测试框架,确保代码质量。 9. **Apache Commons**:一系列实用库,如IO、Lang、Collections等。 10. **JSON库**:如Jackson或Gson,用于...

    repository.zip

    6. **commons-logging**:Apache Commons Logging 是一个日志抽象层,它允许开发者选择不同的日志实现,如 Log4j 或 JDK 内置的日志框架。 7. **backport-util-concurrent**:这是一个回移植的并发包,将 Java 5 及...

    Springboot开发的客户关系管理系统.rar

    5. 日志管理:Spring Boot内置了日志框架,可以方便地接入各种日志系统,如Logback、Log4j等。 四、开发流程 1. 设计数据库模型:根据CRM系统需求,设计相应的实体类和数据表结构。 2. 创建Spring Boot项目:利用...

Global site tag (gtag.js) - Google Analytics