Почему в начале каждой строки моего файла журнала, сгенерированного Logback, есть пробел? - PullRequest
4 голосов
/ 06 февраля 2012

Я использую 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 ]

7 голосов
/ 07 февраля 2012

Измените значение log.pattern на

 "%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%logger{0}] %msg%n%ex"

Примечание: между% n и% нет пробела.

6 голосов
/ 06 февраля 2012

На самом деле, я думаю, что это пробел после новой строки (% n) и перед исключением (% ex). Поскольку ни в одном из выводимых вами данных нет исключений, и вы не добавляете новую строку после исключения, она печатает вашу информацию, новую строку, пробел, пустую строку, а затем снова вашу информацию.

Интересно, будет ли logback автоматически добавлять новую строку после вывода% ex, если он не равен пустой строке.

1 голос
/ 06 февраля 2012

У вас есть %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

...