log4cxxロギングフレームワークを発見しているところです。設定ファイルを書くための2つの異なる構文があるようです:
xmlマナー
Key-Valueマナー
この2つのアプローチに違いやベストプラクティスはありますか?
log4j.xml
log4jでは、Ceki Gulcu(作成者)がテキストファイルよりもXML構成を提案しており、デフォルトの初期化でも(より)優先されますlog4j.txt
。XML構成では、テキストファイルよりもわずかに多くのことを達成できます(ロガーの加法性を操作したり、テキストファイル構成でlog4jデバッグモードを設定したりすることはできないと思います)。
そうは言っても、log4cxxも最初に検索しlog4cxx.xml
ますが、ネット上に構成の例はほとんどないため(公式のドキュメントもありません)、DOMConfigurator
ソースコードを分析して、何が可能かを調べる必要があります(log4jを参照)。例は、必ずしもまったく同じではないため、誤解を招く可能性があります)。
結論として、C ++の世界でのlog4cxxの人気は、Javaのlog4jにさえ近づいていません。なぜだろうか(そして、アドホックソリューションのトンを除いて、一体何がそこで人気があるのか)。
これは実際には質問に対する答えではありませんが、グーグルで検索すると次のようになります。
log4cxxxml構成ファイルの構文
この質問は上位の検索結果です。@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;
}