Java 如何配置logback以创建具有服务器名称的日志文件名
我的java EAR应用程序在2台应用程序服务器上运行。每个人都使用日志文件名在本地写入日志。我想知道如何将唯一的应用程序服务器名称添加到每个服务器中正在写入的日志文件名中。这将帮助我在从服务器下载日志文件并发送给同事进行调试后查看日志文件时识别每个服务器上的文件。目前,我们必须将它们放在单独的文件夹中,因为两个文件夹都有同名的文件。多谢各位 下面是logback.xml中命名该文件的代码段Java 如何配置logback以创建具有服务器名称的日志文件名,java,logging,configuration,logback,Java,Logging,Configuration,Logback,我的java EAR应用程序在2台应用程序服务器上运行。每个人都使用日志文件名在本地写入日志。我想知道如何将唯一的应用程序服务器名称添加到每个服务器中正在写入的日志文件名中。这将帮助我在从服务器下载日志文件并发送给同事进行调试后查看日志文件时识别每个服务器上的文件。目前,我们必须将它们放在单独的文件夹中,因为两个文件夹都有同名的文件。多谢各位 下面是logback.xml中命名该文件的代码段 <appender name="ROLLING" class="ch.qos.logback.co
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>logfile-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 10MB -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
logfile.log
日志文件-%d{yyyy-MM-dd}。%i.log
10MB
%消息%n
如果使用groovy配置进行logback,可以尝试
import java.net.InetAddress
println InetAddress.getLocalHost()
这将为您提供本地服务器名称和IP地址。您可以创建
元素,并使用${name}
引用它们。您好,Sotirios,我是否需要在logback.xml或app servers环境中使用不同的值创建属性name=”“value=”“条目?因为我在两个应用服务器上部署了相同的.EAR文件?谢谢。您可以在logback.xml中声明它们。我想你必须对它们进行硬编码。即使我对名称进行硬编码,logback.xml也不知道它运行在哪个应用程序服务器上。你可以在
中使用${name}
,其中name
是一个系统属性。因此,只需安排每个应用程序以指定其名称的系统属性启动即可。