2016-06-14 5 views
1

У меня есть несколько приложений, запущенных в данном tomcat, под разными URL-адресами и web.xml файлов.Конфигурирование журнала - logback.xml

Я хочу сделать одно logback.xml, то же самое для каждого. Но я хочу, чтобы шаблон имел имя сервера или отображаемое имя в нем. я попробовал %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

Попробуйте ['% h'] (http://logback.qos.ch/manual/layouts.html#clientHost) из' logback-access' – 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> 

Как вы получаете реальную servername и displayname в .properties файл, я не знаю.

+0

Приложение 12+ лет, оно не использует современные так что logback прост. Извините, не удалось выяснить, как добавить logback.cml здесь, поэтому добавлено выше –

+0

Нечто похожее должно быть возможным, я отредактирую свой оригинальный ответ с чем-то, что может сработать. –

Смежные вопросы