如何在 Poco:文件通道"Path"属性中使用环境变量



我正在使用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::XMLConfigurationPoco::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会自动执行此操作。

最新更新