1

同じプロセスでインスタンス化される 2 つの異なる com コンポーネントがあります。どちらのコンポーネントも Log4cxx DomConfigurator を使用しており、異なる log4cxx 構成 xml ファイルを構成しています。それぞれがログの異なるパスを指定します。ただし、ログは、最新にインスタンス化された com コンポーネントによって指定されたパスに作成されます。

これら 2 つの COM コンポーネント ログを別のファイルに保存したいと考えています。これを達成する方法は?

4

3 に答える 3

0

このコードを持つコンポーネント 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 番目のコンポーネントの構成ファイルを構成するときに、ログ パスまたはファイル名を変更するだけです。

乾杯 。

于 2012-05-04T07:28:50.157 に答える