0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
1

Есть ли в log4j возможность одновременно логировать в разные файлы?

15.07.2010, 15:45. Показов 13940. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не подскажете как можно настроить log4j что бы иметь лог только своего приложения (ejb под jboss), без служебной информации jbossa. Возможен вариант что лежат 2-3 приложения. Хотелось бы иметь логи в разные файлы. У меня пока все работает, но пишет исключительно в один файл.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2010, 15:45
Ответы с готовыми решениями:

Log4j в разные файлы
Подскажите как можно записывать с log4j каждую сессию в разные файлы. то есть в приложении...

[log4j] Логировать ли все успешные операции?
Логируют ли в коммерческих проектах, например успешное сохранение пользователя в БД успешное...

Log4j как логировать только один метод из класса
Добрый день. Есть класс с несколькими методами. В нем объявлен лог: private static final Log log...

Есть ли возможность увидеть структуру таблиц, если есть только файлы frm?
Denwer, MySQL 5.5 и phpMyAdmin. В базе данных нет (файлы MYD отсутствуют), а нужно только...

8
0 / 0 / 2
Регистрация: 29.09.2009
Сообщений: 48
19.07.2010, 14:26 2
Нужно создать свой логгер (Logger), обозвав его как нить и с этим же именем настроить файл аппендер в log4j.properties.

Выглядит примерно так

log4j.logger.APP=DEBUG, A5, F5

log4j.appender.A5=org.apache.log4j.ConsoleAppender
log4j.appender.A5.layout=org.apache.log4j.PatternLayout
log4j.appender.A5.layout.ConversionPattern=[%d{dd MMM yyyy HH:mm:ss,SS}] SYN %-5p %m %n

log4j.appender.F5=org.apache.log4j.RollingFileAppender
log4j.appender.F5.file=@log_folder@/application.log
log4j.appender.F5.MaxFileSize=10000KB
log4j.appender.F5.MaxBackupIndex=9999
log4j.appender.F5.layout=org.apache.log4j.PatternLayout
log4j.appender.F5.layout.ConversionPattern=[%d{dd MMM yyyy HH:mm:ss,SS}] %-5p %m %n

т.е. есть логгер под названием APP , к которому есть два аппендера
консольный и файловый.

в коде примерно так :

logger = Logger.getLogger('APP'); // инициализируете единожды при старте приложения. И логируете в энтот логгер.
0
0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
20.07.2010, 16:51  [ТС] 3
Спасибо большое за отклик, честно говоря уже и не ожидал кого-нибудь услышать :-)

Проблема заключается в том, что мне необходимо иметь лог в которое пишет только мое приложение и больше никто. Т.е. если я указываю логгеру два аппендера пишущих в файл, он пишет в два разных файла(замечательно) одну и ту же информацию, в основном служебную jbossa(плюс конечно мои сообщения). А мне надо что бы часть информации с одних ejb шла в один файл, а часть, с других ejb, соответственно, в другой. И что бы кроме этих ejb туда никто не писал. Ни jboss, ни царь и не герой.
Как я понимаю для этого надо создать два логгера...
Не подскажете с настройкой?

Кстати я имею право использовать
public static final Logger log = Logger.getLogger('USER');
в ejb? Меня уверяли что static использовать в ejb нельзя из-за реализации сервера. Но думаю final можно?
0
0 / 0 / 0
Регистрация: 11.02.2010
Сообщений: 111
20.07.2010, 19:42 4
А может логи лучше в базу писать? Хотя бы можно выборку сделать, отчетность какую-нибудь............
0
0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
21.07.2010, 09:12  [ТС] 5
Требование было писать в файл :-(
В базу можно дублировать. Но это второстепенный наворот.
Хорошо, а в базу тоже аппендер настраивается? Я некоторые штуки запустить не могу. Например log4j упорно отказывается слать мне письма :-).
0
0 / 0 / 2
Регистрация: 29.09.2009
Сообщений: 48
21.07.2010, 13:09 6
2 kid3194

1. По поводу ejb: Думаю со статикой заморочек никаких не будет, но я бы сделал некий синглетон, предоставляющий логгеры , например по имени конкретного бина. Ну и из бина дергать соответствующий ему логгер.

2. По поводу базы: подход работает, но надо реализовывать свой аппендер. Где то у меня это было - если понадобится , то могу покопатся - найти пример кода.
0
0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
21.07.2010, 14:59  [ТС] 7
Был бы очень благодарен за пример. Но честно говоря проблема осталась. :-(
Т.е в лог идет служебная информация jbossa под уровнем debug и выше. Мне же надо что бы писало только мое приложение.
А можно создать свой уровень лога, например не debug a dbg и разрешить писать в файл только этому уровню(ну и выше если есть с-ма приоритетов)? Меня бы такое решение вполне устроило. Я пробовал ограничивать уровнем info - все равно много информации. Честно говоря у меня есть свой логгер, коорый позволяет заводить сколько угодно уровней дебага, поэтому я удивлен что в лог4j их только 5. Если неправ - буду только рад.

Насчет синглтона, конечно будет нечто подобное, просто не хочу это здесь обсуждать что бы не уходить от темы :-)
0
0 / 0 / 0
Регистрация: 11.02.2010
Сообщений: 111
21.07.2010, 15:00 8
kid3194, с базой там делается не сложнее чем для файла, когда мне это понадобилось, я в русском (!) инете нашел небольшое хорошее описание юзания log4j. Родной мануал отдыхает =)
0
0 / 0 / 0
Регистрация: 11.07.2010
Сообщений: 7
21.07.2010, 15:36  [ТС] 9
О, я тоже нашел две неплохие статьи на русском, скачал родной мануал, но проблему так и не решил. Ладно, с базой я сам разберусь вы просто подскажите есть такая возможность(что бы в лог писал только bean) или нет. Может я хочу что бы каждай bean писал в свой файл :-)

Так, может мне от Priority наследовать что бы свой level создать? Но в любом случае будут показываться другие уровни дебага....
0
21.07.2010, 15:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2010, 15:36
Помогаю со студенческими работами здесь

Есть ли возможность преобразовать файлы и каталоги в нижний регистр?
Может кто-нибудь подсказать есть ли возможность в Windows Server 2008 R2 преобразовать файлы и...

Есть ли возможность восстановить файлы на жестком диске, которые были вырезаны?
доброго! суть проблемы, перенес папку с файлами из жесткого диска на флешку. флешку с успехом...

Есть ли возможность запускать jar файлы которые выводят лог в консоль, без ввода?
Доброго времени суток! Хотел узнать есть ли возможность запускать jar файлы которые выводят лог в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru