同じプロセスでインスタンス化される 2 つの異なる com コンポーネントがあります。どちらのコンポーネントも Log4cxx DomConfigurator を使用しており、異なる log4cxx 構成 xml ファイルを構成しています。それぞれがログの異なるパスを指定します。ただし、ログは、最新にインスタンス化された com コンポーネントによって指定されたパスに作成されます。
これら 2 つの COM コンポーネント ログを別のファイルに保存したいと考えています。これを達成する方法は?
このコードを持つコンポーネント 1 または、任意のコンポーネントが使用できる logcxx ラッパー共通クラスに書き込むことができます。
strPath = "AppLog1.dat";
log4cxx::BasicConfigurator::configure();
log4cxx::File cfgFile(strPath);
log4cxx::PropertyConfigurator::configureAndWatch(cfgFile, 60000);
異なる AppLog2.dat ファイルで同じコードを持つコンポーネント 2
サンプルdatファイル。
#Log4cxx configuration file .
#Final version of log4cxx config
#Author - Sri 4/5/2012
# Root logger set to DEBUG using the A2 apender defined above.
# Set options for appender named 'DT'
# DT's layout is TTCC, using the
# ISO8061 date format with context printing enabled.
log4j.appender.DT=RollingFileAppender
log4j.appender.DT.layout=TTCCLayout
log4j.appender.DT.File=.\\log\\log.log
log4j.appender.DT.layout.ContextPrinting=enabled
log4j.appender.DT.layout.DateFormat=ISO8601
log4j.appender.DT.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.DT.rollingPolicy.FileNamePattern=.\\log\\log-%d.log.zip
# Set options for appender named 'RawAppender'
# RawAppender's layout is PatternLayout
log4j.appender.RawAppender=RollingFileAppender
log4j.appender.RawAppender.layout=TTCCLayout
log4j.appender.RawAppender.File=.\\log\\Raw.log
log4j.appender.RawAppender.layout.ContextPrinting=enabled
log4j.appender.RawAppender.layout.DateFormat=ISO8601
log4j.appender.RawAppender.rollingPolicy=org.apache.log4j.rolling.
TimeBasedRollingPolicy
log4j.appender.RawAppender.rollingPolicy.FileNamePattern=.\\log\\RawData-%d.log.zip
# Set options for appender named 'ErrorAppender'
# ErrorAppender's layout is TTCC, using the
# ISO8061 date format with context printing enabled.
log4j.appender.ErrorAppender=RollingFileAppender
log4j.appender.ErrorAppender.MaxBackupIndex=10
log4j.appender.ErrorAppender.layout=TTCCLayout
log4j.appender.ErrorAppender.File=.\\log\\Error.log
log4j.appender.ErrorAppender.layout.ContextPrinting=enabled
log4j.appender.ErrorAppender.layout.DateFormat=ISO8601
log4j.appender.ErrorAppender.rollingPolicy=org.apache.log4j.rolling.
TimeBasedRollingPolicy
log4j.appender.ErrorAppender.rollingPolicy.FileNamePattern=.\\log\\Error-%d.log.zip
# Root logger set to DEBUG using the A2 apender defined above.
log4j.rootLogger=DEBUG, DT
# The logger 'DTError' inherits its level from the
# logger hierarchy. Output will go to the appender's of the root
# logger, DT in this case.
log4j.logger.DTError=INHERIT,ErrorAppender
/////////////////////////////////////////////// ////////////////////// 2 番目のコンポーネントの構成ファイルを構成するときに、ログ パスまたはファイル名を変更するだけです。
乾杯 。