Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我可以使用属性文件和运行时配置来配置log4cxx吗?_C++_Logging_Log4j_Log4cxx - Fatal编程技术网

C++ 我可以使用属性文件和运行时配置来配置log4cxx吗?

C++ 我可以使用属性文件和运行时配置来配置log4cxx吗?,c++,logging,log4j,log4cxx,C++,Logging,Log4j,Log4cxx,我想将配置文件读入log4cxx,但在运行时,我想修改appender/logger。我能做这个吗 log4cxx文件示例: log4j.rootLogger=all, console, file log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.SimpleLayout log4j.appender.console.threshold=i

我想将配置文件读入log4cxx,但在运行时,我想修改appender/logger。我能做这个吗

log4cxx文件示例:

log4j.rootLogger=all, console, file

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
log4j.appender.console.threshold=info

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %c [%p] %l %m%n
log4j.appender.file.filename=logfile.txt
log4j.appender.file.datePattern='.'yyyy-MM-dd
示例来源:

PropertyConfigurator::configure("./LoggingConfig.txt");

auto rootlogger = Logger::getRootLogger();
DailyRollingFileAppenderPtr fileappender = rootlogger->getAppender(LOG4CXX_STR("file"));

fileappender->setFile(LOG4CXX_STR("thisisthenewfile.txt"));
--我注意到输出仍然写入配置文件中的原始位置


不可能使用代码(运行时)和文件进行配置吗?

是的,尽管您有log4crc文件,但可以通过代码修改appender或logger。我在log4c中以以下方式完成了此操作。
log4c_appender_t*myappender=log4c_appender_get(“man.appender”)
要更改前缀或日志目录,您需要按以下方式创建滚动文件udata的对象:
rollingfile\u udata\u t*rfu=rollingfile\u make\u udata()
然后设置路径
rollingfile\u udata\u set\u logdir(rfu,“my/sample/path”)
也可以设置前缀
rollingfile\u udata\u set\u files\u prefix(rfu,“myPrefix”)
然后使用appender设置滚动文件
log4c_appender_set_udata(myappender,rfu)
此外,您可能还需要将appender设置为category

log4c_类别_集合_追加器(mycat,myappender)

您有没有找到解决方案?