powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / log4j:ERROR Failed to write
8 сообщений из 8, страница 1 из 1
log4j:ERROR Failed to write
    #38376551
Vit_URAZOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый коллеги!
Возникла абсолютно стандартная задача для сервера написанном на яве: перенаправить System.err и System.out в log4j.
Цель перенаправить логи в syslog
OS Ubuntu 12.0.4
Использовал обсолютной стандарный подход судя:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
import java.io.PrintStream;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;

public class SystemStreamsLogger {

    public static final String SYS_STD_OUT = "GOUT";
    public static final String SYS_STD_ERR = "GERR";
    /**
     * Stdout and stderr streams have been stored
     */
    public static final PrintStream sysOut = System.out;
    public static final PrintStream sysErr = System.err;
    /**
     * Using different logger for out and err threads
     */
    private static Logger sysOutLogger = Logger.getLogger(SYS_STD_OUT);
    private static Logger sysErrLogger = Logger.getLogger(SYS_STD_ERR);

    public static void initStreamsOutAndErrLogging() {
        bindSystemOutLogging();
        bindSystemErrLogging();
    }

    public static void bindSystemOutLogging() {
        System.setOut(new PrintStream(new LoggingOutputStream(sysOutLogger, Level.INFO), true));
    }

    public static void bindSystemErrLogging() {
        System.setErr(new PrintStream(new LoggingOutputStream(sysErrLogger, Level.ERROR), true));
    }

    public static void unbindStreamsOutAndErr() {
        System.setOut(sysOut);
        System.setErr(sysErr);
    }
}


и
класс LoggingOutputStream
https://svn.apache.org/viewvc/logging/log4j/trunk/contribs/JimMoore/LoggingOutputStream.java?view=co

и конфигурацию
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %-5p [%40.40c]  %m%n
log4j.appender.Console.Threshold=INFO

###### File appender definition #######
log4j.appender.File=org.apache.log4j.net.SyslogAppender
log4j.appender.File.syslogHost=localhost
log4j.appender.File.Facility=USER
log4j.appender.File.Threshold=INFO
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{ISO8601} %-5p [%40.40c]  %m%n



С System.out проблем нет,
а вот при возникновения Exception
получаем
Код: java
1.
2.
3.
4.
      GERR]  log4j:ERROR Failed to write [<11>2013-08-24 14:23:28,579 ERROR [services.ApplicationClassLoader]  Error while compilation of custom script
].
2013-08-24 14:23:28,580 ERROR [                                  GERR]  log4j:ERROR Failed to write [<11>2013-08-24 14:23:28,580 ERROR [                                   GERR]  log4j:ERROR Failed to write [<11>2013-08-24
...........


то есть log4j:ERROR Failed to write

Облазил уже весь интренет - видел множество таких же вопросо но ни одного ответа на них...
Есть мысли куда рыть или как изменить архитектуру?
...
Рейтинг: 0 / 0
log4j:ERROR Failed to write
    #38376591
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я тупой, но логгеры настраиваются средствами самого log4j, а перенаправление стандартного вывода - стартовыми скриптами.
...
Рейтинг: 0 / 0
log4j:ERROR Failed to write
    #38376656
Vit_URAZOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я согласен, что можно вывести стандартными скриптами, но с требование заказчика таковое что необходимо выполнить редирект System.err в log4j без использования скриптов
...
Рейтинг: 0 / 0
log4j:ERROR Failed to write
    #38376716
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vit_URAZOV,

http://stackoverflow.com/a/1370033

P.S.
And I call this StdOutErrLog.tieSystemOutAndErrToLog() on startup
...
Рейтинг: 0 / 0
log4j:ERROR Failed to write
    #38376790
Vit_URAZOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если внимательно посмотреть на код который я выложил , но можно у видеть что решение один в один такое как на этой ссылке, за исключением того что там идет просто "проброс" потока вывода и использован уровень INFO
... Вы попробуйте использовать эти решения , когда "свалите" в глубокий printStackTrace....
...
Рейтинг: 0 / 0
log4j:ERROR Failed to write
    #38376952
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vit_URAZOVтребование заказчика таковое что необходимо выполнить редирект System.err в log4j без использования скриптовОбъясните заказчику, что log4j никуда и ничего не перенаправляет. И кофе не варит.
...
Рейтинг: 0 / 0
log4j:ERROR Failed to write
    #38377002
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vit_URAZOV... Вы попробуйте использовать эти решения , когда "свалите" в глубокий printStackTrace....В самом приложении все прекрасно перехватывается.
Подозреваю, что дело в SYSLOG'е (rsyslog.conf, RSYSLOGD_OPTIONS).
...
Рейтинг: 0 / 0
log4j:ERROR Failed to write
    #38377060
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пишут. Может поможет.

https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/ConsoleAppender.html ConsoleAppender appends log events to System.out or System.err using a layout specified by the user. The default target is System.out.
void setFollow(boolean newValue) Sets whether the appender honors reassignments of System.out or System.err made after configuration. public void setTarget(String value)
Sets the value of the Target option. Recognized values are "System.out" and "System.err". Any other value will be ignored.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / log4j:ERROR Failed to write
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]