Почему в начале каждой строки моего файла журнала, сгенерированного Logback, есть пробел?
Я использую Logback для входа. В начале каждой строки после первой строки находится пробел. Есть идеи почему?
Ниже мой logback.xml:
<?xml version="1.0" encoding="utf-8"?>
<configuration debug="true">
<property name="log.pattern" value="%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%logger{0}] %msg%n %ex"/>
<property name="log.file.prefix" value="${app.home}/var/log/${app.name}"/>
<appender name="DEFAULT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.file.prefix}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.file.prefix}.%d{yyyyMMdd}.%i.log.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<Pattern>${log.pattern}</Pattern>
</encoder>
</appender>
<!-- info for everything else -->
<root level="info">
<appender-ref ref="DEFAULT"/>
</root>
</configuration>
Это приводит к выводу журнала, как показано ниже (обратите внимание, что в первой строке нет пробела):
2012/02/06 13:34:09.875 INFO [BrokerService] Using Persistence Adapter: MemoryPersistenceAdapter
2012/02/06 13:34:09.875 INFO [BrokerService] ActiveMQ 5.3.1 JMS Message Broker (localhost) is starting
2012/02/06 13:34:09.875 INFO [BrokerService] For help or more information please see: http://activemq.apache.org/
2012/02/06 13:34:09.953 INFO [ManagementContext] JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
2012/02/06 13:34:10.328 INFO [BrokerService] ActiveMQ JMS Message Broker (localhost, ID:NZucker-NYL-3937-1328553250062-0:0) started
2012/02/06 13:34:10.343 INFO [TransportConnector] Connector vm://localhost Started
3 ответа
На самом деле, я думаю, что это пробел после новой строки (%n) и перед исключением (%ex). Поскольку ни в одном из выводимых вами данных нет исключений, и вы не добавляете новую строку после исключения, она печатает вашу информацию, новую строку, пробел, пустую строку, а затем снова вашу информацию.
Интересно, будет ли logback автоматически добавлять новую строку после вывода% ex, если он не равен пустой строке.
Измените значение log.pattern на
"%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%logger{0}] %msg%n%ex"
Примечание: между%n и%ex нет пробела.
У тебя есть %n
в вашем log.pattern, который дает вам перевод строки. Пытаться:
<property name="log.pattern" value="%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%logger{0}] %msg %ex"/>
Информация о макете шаблона: http://logback.qos.ch/manual/layouts.html