2016-06-14 5 views
1

주어진 톰캣에서 실행되는 여러 개의 동일한 앱이 모두 서로 다른 URL 및 web.xml 개의 파일에 있습니다.Logback 구성 - logback.xml

각각에 대해 동일한 logback.xml을 만들고 싶습니다. 하지만 패턴에 servername 또는 display-name이 있어야합니다. 나는 이것을 넣기 위해 %property{} 또는 ${}을 시도했지만 행운은 없다.

응용 프로그램이 12 세 이상이며 최신 프레임 워크를 사용하지 않아 로그백이 간단합니다.

<configuration scan="true" scanPeriod="30 seconds"> 
    <!-- output changes to logging status to the console. Handy to see when your changes have been reflected. --> 
    <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> 
     <encoder> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </encoder> 
    </appender> 
    <root level="warn"> 
     <appender-ref ref="STDOUT" /> 
    </root> 
    <logger name="org.apache.jsp.actions.form" level="debug" /> 
     <logger name="com.sok.runway.offline.rpmManager" level="debug" /> 
</configuration> 
+0

'logback-access'에서 ['% h'] (http://logback.qos.ch/manual/layouts.html#clientHost) 시도 – tony19

답변

0

.properties 파일을 사용하여 서버 및 표시 이름을 지정할 수 있습니다.

application-logback.properties : (또는 파일 이름을 지정할 수도 있지만)

servername=production 
displayname=MyDisplayName 

logback의 설정 :

<configuration scan="true" scanPeriod="30 seconds"> 
    <property resource="application-logback.properties" /><!-- this is new --> 

    <!-- output changes to logging status to the console. Handy to see when your changes have been reflected. --> 
    <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> 
     <encoder><!-- new pattern with the 2 properties --> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [${servername}] [${displayname}] [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </encoder> 
    </appender> 
    <root level="warn"> 
     <appender-ref ref="STDOUT" /> 
    </root> 
    <logger name="org.apache.jsp.actions.form" level="debug" /> 
     <logger name="com.sok.runway.offline.rpmManager" level="debug" /> 
</configuration> 

당신은 .properties 파일에 실제 servernamedisplayname을 얻을 방법을 파일, 나도 몰라.

+0

응용 프로그램이 12 세 이상이며 현대를 사용하지 않습니다. 그래서 로그백은 간단합니다. 죄송합니다. 여기에 logback.cml을 추가하는 방법을 알아볼 수 없으므로 위에 추가되었습니다. –

+0

비슷한 점이있을 수 있습니다. 원래의 대답을 수정할 수 있습니다. –