Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Log4J, RollingFileAppender 
:(
    Опции темы
COVD
Дата 27.10.2005, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 6
Всего: 43



Я использую DailyRollingFileAppender в log4j . Благодаря этому каждый день создается новый лог файл, а файл за прошедший день переименовывается - к нему добавляется дата. Однако плохо то, что меняется и расширение файла . Если имя файла например app.txt , то вчерашний файл будет иметь имя app.txt.2005-10-26 . А хотелось бы иметь app.2005-10-26.txt , или 2005-10-26.app.txt , но не получается.
Возможно ли это ? Трудно открывать файлы с нестандартным расширением.
PM MAIL   Вверх
Се ля ви
Дата 27.10.2005, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 1
Всего: 127



smile
Может мне кто-нибудь обосновать - ну чем Log4J лучше стандартной Sun`овской библиотеки журналирования java.util.logging.* ?.. Недавно сел изучать Log4J, а потом полистал Эккеля, нашёл у него описание стандартной библиотеки и пожалел о бездарно потраченном времяни. Теперь работаю на стандартной либе и всем вроде доволен...


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
COVD
Дата 27.10.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 6
Всего: 43



Я не знаю, чем лучше или хуже. Если кто-нибудь подтвердит, что сановский пакет позволяет настроить логи так, как мне надо, то я напрягусь и прикручу сановский пакет. smile
PM MAIL   Вверх
pvo
Дата 27.10.2005, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 7.10.2005
Где: Мск

Репутация: нет
Всего: 7



Цитата
Может мне кто-нибудь обосновать - ну чем Log4J лучше стандартной Sun`овской библиотеки журналирования java.util.logging.* ?.. Недавно сел изучать Log4J, а потом полистал Эккеля, нашёл у него описание стандартной библиотеки и пожалел о бездарно потраченном времяни. Теперь работаю на стандартной либе и всем вроде доволен...


В лог4ж возможностей поболее будет. К примеру, сможет ли стандартный либ кидать сообщения в почту?
Кроме того, тоже вопрос - почему лог4ж используется в толпе проектов?

Добавлено @ 17:23
Цитата(COVD @ 27.10.2005, 16:23)
Возможно ли это ?

Конечно, ведь есть же исходники. Поскольку в настройках такая возможность не задается, то вероятнее всего нужно будет реализовать наследника от DailyRollingFileAppender. Скорее всего там дел минут на 10
PM MAIL ICQ   Вверх
COVD
Дата 27.10.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 6
Всего: 43



Цитата
Конечно, ведь есть же исходники. Поскольку в настройках такая возможность не задается, то вероятнее всего нужно будет реализовать наследника от DailyRollingFileAppender. Скорее всего там дел минут на 10


Спасибо за идею. Но вообще-то странно. Неужели то, что там реализовано с переименовыванием файла - стандарт? Это неудобно только мне? Может я как-то не так этим пользуюсь?
PM MAIL   Вверх
pvo
Дата 27.10.2005, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 7.10.2005
Где: Мск

Репутация: нет
Всего: 7



Меня такое именование файлов тоже бесит. Однако Гугл не показал, что есть еще люди, которым это мешает.
Сегодня скачаю исходники и гляну, как там все устроено
PM MAIL ICQ   Вверх
LSD
Дата 27.10.2005, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 15
Всего: 538



Цитата
Может мне кто-нибудь обосновать - ну чем Log4J лучше стандартной Sun`овской библиотеки журналирования java.util.logging.* ?

Log4j уже готовое решение, просто подключаешь его к своему проекту и используешь. А Sun-овский еще надо настраивать и дописывать к нему классы, в частности там катастрофически мало Handler-ов и Formatter-ов.

Но зато Sun-овский более гибкий. В частности есть возможность задать время события отличное от времени записи в лог (полезно например когда происходит внешняя ошибка). Метод и класс в котором произошла ошибка могут быть установленны ручками. Сообщения можно локализировать для любого языка. Фильтры сообщений. Логгируется не абстрактный объект, а вполне конкретный класс LogRecord, что лично мне больше симпатизирует, плюс у этого класса, есть вполне стандартный метод передачи дополнительных параметров.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
pvo
Дата 27.10.2005, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 7.10.2005
Где: Мск

Репутация: нет
Всего: 7



Цитата(COVD @ 27.10.2005, 18:28)
Спасибо за идею. Но вообще-то странно. Неужели то, что там реализовано с переименовыванием файла - стандарт?


Имя файла зашито жестко. Вот как там:

Код

/**

     Rollover the current file to a new file.

  */

  void rollOver() throws IOException {



    /* Compute filename, but only if datePattern is specified */

    if (datePattern == null) {

      errorHandler.error("Missing DatePattern option in rollOver().");

      return;

    }



    String datedFilename = fileName+sdf.format(now);

    // It is too early to roll over because we are still within the

    // bounds of the current interval. Rollover will occur once the

    // next interval is reached.

    if (scheduledFilename.equals(datedFilename)) {

      return;

    }



    // close current file, and rename it to datedFilename

    this.closeFile();



    File target  = new File(scheduledFilename);

    if (target.exists()) {

      target.delete();

    }



    File file = new File(fileName);

    boolean result = file.renameTo(target);

    if(result) {

      LogLog.debug(fileName +" -> "+ scheduledFilename);

    } else {

      LogLog.error("Failed to rename ["+fileName+"] to ["+scheduledFilename+"].");

    }



    try {

      // This will also close the file. This is OK since multiple

      // close operations are safe.

      this.setFile(fileName, false, this.bufferedIO, this.bufferSize);

    }

    catch(IOException e) {

      errorHandler.error("setFile("+fileName+", false) call failed.");

    }

    scheduledFilename = datedFilename;

  }


PM MAIL ICQ   Вверх
COVD
Дата 28.10.2005, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 6
Всего: 43



pvo, спасибо !
PM MAIL   Вверх
COVD
Дата 1.11.2005, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 6
Всего: 43



Все же нашлось шаманское заклинание, позволяющее решить проблему.
В проперти надо писать:


Код

log4j.appender.dates.DatePattern = '.'yyyy-MM-dd'.txt'



Тогда файл app.txt , например, переименуется в app.txt.2005-11-01.txt

Это сообщение отредактировал(а) COVD - 1.11.2005, 16:39
PM MAIL   Вверх
Stampede
Дата 3.11.2005, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 3
Всего: 144



Цитата(COVD @ 1.11.2005, 16:38)
Все же нашлось шаманское заклинание, позволяющее решить проблему.


You da Man! smile

Тоже всю жизнь бесился, да все руки не доходили поискать ответ. Так что получи в репу!

PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.