首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4j属性文件动态路径设置

Log4j属性文件动态路径设置
EN

Stack Overflow用户
提问于 2017-01-24 20:22:41
回答 1查看 773关注 0票数 0

我们有一个JBoss服务器,它有6个实例,分别命名为cim_ms1、cim_ms2、...cim_ms6.In。我们有java代码,日志文件路径是/home/crm/ Log4g.properties /cim。现在,对于所有6个实例,日志文件都是在主目录/crm/ logs中创建的。但是对于所有6个实例,日志文件都是在主目录/crm/logs/ cim_ms1 (对于cim_ms1)、主/crm/logs/ cim_ms2 (对于cim_ms2)创建的,因此on.The日志也应该正确地放在它们各自的日志文件路径中。cim_ms1、cim_ms2等是服务器names.How吗?我应该在log4g属性中动态获取这些路径吗?

EN

回答 1

Stack Overflow用户

发布于 2017-01-25 01:14:51

我假设您希望对所有实例使用相同的log4j2.xml配置文件。您可以使用属性替换来针对单独的日志文件。下面是一个配置示例:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
  <Properties>
    <!-- default to use if system property is not specified -->
    <Property name="instance">default_instance</Property>
  </Properties>
  <Appenders>
    <File name="MyFile" fileName="home/crm/logs/${sys:instance}/myapp.log">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
      </PatternLayout>
    </File>
  </Appenders>
  <Loggers>
    <Root level="trace">
      <AppenderRef ref="MyFile"/>
    </Root>
  </Loggers>
</Configuration>

现在,如果您为第一个实例指定系统属性-Dinstance=cim_ms1,为第二个实例指定-Dinstance=cim_ms2,等等,则每个实例将记录到单独的日志文件中。

除了系统属性,还可以在名为log4j2.component.properties的文件中指定上述属性,方法是在应用程序的类路径中包含此文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41828173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档