我正在使用poco :: loggingConfigurator库进行记录,使用poco :: xmlConfiguration来配置记录属性。我想在记录配置XML文件的路径值中使用环境变量。如何在XML配置文件中进行操作?
这是我现在正在使用的XML配置文件。
<logging>
<channels>
<logFileChannel>
<class>FileChannel</class>
<path>/logs/agent-xfs.log</path>
<rotation>1 M</rotation>
<archive>timestamp</archive>
<compress>true</compress>
<purgeCount>60</purgeCount>
</logFileChannel>
</channels>
<loggers>
<root>
<channel>logFileChannel</channel>
<level>debug</level>
</root>
</loggers>
我想使用以下环境变量来定义路径变量值,
$ {env_sample_varaible}/logs/agent-xfs.log
您可以使用${system.env.NAME}
参考环境变量,例如:
<path>${system.env.LOGPATH}/agent-xfs.log</path>
为了使${system.env.LOGPATH}
解决,您需要拥有一个包含Poco::Util::SystemConfiguration
和您的Poco::Util::XMLConfiguration
的Poco::Util::LayeredConfiguration
:
Poco::AutoPtr<Poco::Util::LayeredConfiguration> pConfig = new Poco::Util::LayeredConfiguration;
pConfig->add(new Poco::Util::SystemConfiguration, 100, false, false);
pConfig->add(new Poco::Util::XMLConfiguration(configFilePath.toString()), 0, false, false);
LoggingConfigurator loggingConfigurator; loggingConfigurator.configure(pConfig);
请注意,如果您使用它来处理配置,则Poco::Util::Application
会自动执行此操作。