2017-01-18 2 views
1

Это мой файл конфигурации log4j2.xml:Можете ли вы перенаправить stdout, stderr в fileappender в log4j2 v2.3?

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="WARN"> 
    <Appenders> 
    <Console name="Console" target="SYSTEM_OUT" ignoreExceptions="false"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
    <File name="Log4JFile" fileName="/log/Log4JFile.log"> 
     <PatternLayout> 
     <Pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Pattern> 
     </PatternLayout> 
    </File> 
    </Appenders> 
    <Loggers> 
    <Root level="trace"> 
     <AppenderRef ref="Console"/> 
     <AppenderRef ref="Log4JFile"/> 
    </Root> 
    </Loggers> 
</Configuration> 

Я использую JBoss, и если вы не включают в себя конфигурационный файл, log4j все журналы для server.log. Мне нужно записать все уровни log4j плюс stdout и stderr в отдельный файл, который не является стандартным. Как я могу выполнить это без переопределения метода печати в Java?

ответ

0

Вы не можете перенаправить из Log4j ConsoleAppender в Log4j FileAppender.

Что вы делаете может do в скриптах/командах, которые запускают ваше приложение, перенаправляют вывод этой команды в файл. Синтаксис для этого зависит от ОС, но обычно выглядит примерно как command > file. Несколько символов > могут добавляться в существующий файл, а не перезаписывать его. (Также зависит от ОС.)

+0

Мой коллега сказал, что мы делали это, но он перестает регистрировать вывод на консоль. Вы знаете, как исправить эту проблему? –

+0

Если вы хотите захватить вывод консоли и сохранить его в файле и в то же время контролировать этот вывод в реальном времени, вы можете закрепить файл журнала. –

+0

Я не знаю, как это сделать. Это сложный вопрос, и если бы вы не могли дать мне быстрый пример? –

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