log4cxx配置文件语法

时间:2011-08-22 18:52:22

标签: c++ log4j log4cxx

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

  1. xml方式

  2. 键值方式

  3. 这两种方法是否存在差异或最佳做法?

2 个答案:

答案 0 :(得分:1)

在log4j中,Ceki Gulcu(作者)建议在文本文件上进行XML配置,并且它在默认初始化中也优先(log4j.xml超过log4j.txt)。使用XML配置比使用文本文件可以实现更多(我认为您无法操纵记录器可加性并使用文本文件配置设置log4j调试模式)。

也就是说,log4cxx也首先查找log4cxx.xml,但网上几乎没有任何配置示例(也没有官方文档),所以你可能需要分析{{1找到可能的源代码(引用log4j示例可能会产生误导,因为它并不总是完全相同)。

总而言之,C ++世界中的log4cxx流行度甚至没有接近Java中的log4j。我想知道为什么(除了大量的临时解决方案之外,那里很受欢迎)。

答案 1 :(得分:0)

这实际上不是问题的答案,而是当您搜索时:

<块引用>

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;
}