我可以同时使用属性文件和运行时配置配置log4cxx吗?
Can I configure log4cxx both using a property file and runtime configuration?
我想在配置文件中读取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");
要更改前缀或日志目录,您需要按以下方式创建滚动文件数据的对象:rollingfile_udata_t *rfu = rollingfile_make_udata();
然后设置路径rollingfile_udata_set_logdir(rfu,"my/sample/path");
或者设置前缀toorollingfile_udata_set_files_prefix(rfu,"myPrefix");
然后用appender
设置滚动文件log4c_appender_set_udata(myappender,rfu);
你还可以用category
设置appenderlog4c_category_set_appender(mycat,myappender);
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- 我在c++代码中生成了一个运行时#3异常
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- Visual Studio 2017 - 调试和 Relese 配置,设置运行时库
- 根据用户配置在运行时链接共享对象
- 通过配置文件在运行时选择变量类型
- 我可以在运行时更改 Log4Qt 配置的文件名吗?
- 在C++中的运行时嵌入一个配置文件
- 如何在运行时配置访问者模式
- MSBuild 在针对不同配置运行时不必要地运行自定义生成工具
- cudaMemCpy2d error (cudaErrorInvalidValue) 运行时"debug"配置
- 发布配置上的Visual Studio c++多线程运行时问题
- 我可以同时使用属性文件和运行时配置配置log4cxx吗?