Log4cxx配置文件语法

log4cxx config file syntax

本文关键字:语法 配置文件 Log4cxx      更新时间:2023-10-16

我刚刚发现log4cxx日志框架。似乎有两种不同的语法用于编写配置文件:

    xml方式
  1. 键值的方式

这两种方法是否有区别或最佳实践?

在log4j中,Ceki Gulcu(作者)建议XML配置优于文本文件,并且它在默认初始化中也具有优先权(log4j.xml优于log4j.txt)。使用XML配置可以比使用文本文件实现更多的功能(我认为不能使用文本文件配置操纵日志记录器的可加性并设置log4j调试模式)。

也就是说,log4cxx首先寻找log4cxx.xml,但是在网上几乎没有任何配置示例(也没有官方文档),所以您可能需要分析DOMConfigurator源代码以找出可能的情况(参考log4j示例可能会被证明具有误导性,因为它并不总是完全相同的事情)。

综上所述,log4cxx在c++世界中的流行程度甚至无法接近Java中的log4j。我想知道为什么(除了大量的临时解决方案之外,还有什么在那里流行)。

这实际上不是问题的答案但是当你谷歌:

log4cxx XML配置文件语法

这个问题是最重要的搜索结果。正如@MaDa所提到的,很难找到log4cxx的XML配置文件示例和语法描述。这就是它。可能是最简单的,只是登录到控制台并进入日志文件。

<?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <!-- Output log messages to the system console. -->
    <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %c{1} - %m%n" />
        </layout>
    </appender>
    <!-- Also output log messages to the log file. -->
    <appender name="FileAppender" class="org.apache.log4j.FileAppender">
        <param name="file" value="LogFile.log" />
        <param name="append" value="true" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p %C{2} (%F:%L) - %m%n" />
        </layout>
    </appender>
    <root>
        <priority value="all" />
        <appender-ref ref="ConsoleAppender" />
        <appender-ref ref="FileAppender" />
    </root>
</log4j:configuration>

和简单用法示例:

#include "log4cxx/logger.h"
#include "log4cxx/xml/domconfigurator.h"
using namespace log4cxx;
using namespace log4cxx::xml;
LoggerPtr logger (Logger::getLogger ("TEST"));
int main ()
{
    DOMConfigurator::configure ("Log4cxxConfig.xml");
    LOG4CXX_INFO (logger, "App started!");
    LOG4CXX_ERROR (logger, "Some error!");
    return 0;
}