Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Log4j - нужна помощь


Автор: progralex 27.7.2009, 16:10
проблема есть, не пойму хоть убей: две Java аппликации, стартуются bat файлом, пишут в два разных лога. Каждая видит свой log4j.properties файл для log4j (проверено). На Линукс машине RollingFileAppender для каждой аппликации работает как надо, 10 логов по 10MB, посылаю клиенту - те же две аппликации, стартуют так же, но на Windows пишется все в один лог, хотя видно иногда что логи образубтся и пропадают, в итоге - на диске один лог файл а не 10... Устанавливаю log4j.debug=true - вроде не видно ошибок...Может у кого-то была похожая проблема? Что за хрень, не могу понять...

Автор: LSD 27.7.2009, 17:14
Полностью согласен, в данной ситуации текст log4j.properties, строка запуска и где расположено приложение это излишняя информация. Пусть народ телепатические способности потренирует.

Автор: progralex 27.7.2009, 18:14
LSD, был неправ, извиняйте. Исправляюсь.

log4j.properties:

log4j.debug=true 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} [%C] %-5p %x - %m%n

log4j.logger.com.compname=DEBUG, UPF, stdout
log4j.appender.UPF=org.apache.log4j.RollingFileAppender
log4j.appender.UPF.File=log/apl1.log
log4j.appender.UPF.MaxFileSize=5KB
log4j.appender.UPF.MaxBackupIndex=100
log4j.appender.UPF.layout=org.apache.log4j.PatternLayout
log4j.appender.UPF.layout.ConversionPattern=%d{ISO8601} %c %x - %m%n

# For sending Admin e-mails. Uncomment to configure admin e-mails
log4j.logger.email.notifyer=debug,email,UPF
log4j.appender.email=org.apache.log4j.net.SMTPAppender
log4j.appender.email.SMTPHost=some.host
log4j.appender.email.BufferSize=1
log4j.appender.email.threshold=ERROR
[email protected]
[email protected]
log4j.appender.email.subject=[prod] Admin Message
log4j.appender.email.layout=org.apache.log4j.PatternLayout
log4j.appender.email.layout.ConversionPattern=%d{ISO8601} %5p [%t] (%F:%L) - %m%n


log4j.logger.com.compname.integ.apl2=DEBUG, UPF2, stdout,email
log4j.appender.UPF2=org.apache.log4j.RollingFileAppender
log4j.appender.UPF2.File=log/apl2.log
log4j.appender.UPF2.MaxFileSize=1KB
log4j.appender.UPF2.MaxBackupIndex=100
log4j.appender.UPF2.layout=org.apache.log4j.PatternLayout
log4j.appender.UPF.layout.ConversionPattern=%d{ISO8601} %c %x - %m%n


log4j.logger.EG=debug,email,UPF,stdout
log4j.logger.MSC=debug,email_MSC,UPF_MSC,stdout

log4j.appender.UPF_MSC=org.apache.log4j.RollingFileAppender
log4j.appender.UPF_MSC.File=log/apl2-msc.log
log4j.appender.UPF_MSC.MaxFileSize=10MB
log4j.appender.UPF_MSC.MaxBackupIndex=100
log4j.appender.UPF_MSC.layout=org.apache.log4j.PatternLayout
log4j.appender.UPF_MSC.layout.ConversionPattern=%d{ISO8601} %c %-5p %x - %m%n

log4j.appender.email_MSC=org.apache.log4j.net.SMTPAppender
log4j.appender.email_MSC.SMTPHost=medina.tabc.state.tx.us
log4j.appender.email_MSC.BufferSize=1
log4j.appender.email_MSC.threshold=ERROR
[email protected]
[email protected]
log4j.appender.email_MSC.subject=[prod] Admin Message (MSC)
log4j.appender.email_MSC.layout=org.apache.log4j.PatternLayout
log4j.appender.email_MSC.layout.ConversionPattern=%d{ISO8601} %5p [%t] (%F:%L) - %m%n

log4j.properties path:  d:\orion\ testapl

аппликации стартуются из двух файлов: start apl1.bat и start apl2.bat (path D:\orion)

start apl1.bat: 
cd testapl
apl1.bat

start apl2.bat: 
cd testapl
apl1.bat

apl1.bat (d:\orion\testapl):
title 4-TESTTapl1 %date% %time%
PATH D:\java\j2sdk1.4.2_07\bin
java -server -Xmx1280M -classpath ".;.\apl1.jar" com.versasys.integ.apl1.Apl1
pause

apl2.bat (d:\orion\testapl):
title 3-TESTapl2 %date% %time%
PATH D:\java\j2sdk1.4.2_07\bin
java -server -Xmx1280M -classpath ".;.\jtds-1.0.2.jar;.\apl2.jar" com.versasys.integ.apl2.StoredProcAdapter
pause

Автор: LSD 27.7.2009, 18:59
А зачем нужна точка в classpath, у вас там что-то лежит? И как эти properties разделены по файлам (заключи их в тег [code = nocolor] [/code] )?

Автор: progralex 27.7.2009, 20:40
точка в класспат - да, там библиотеки и джары для драйверов. один logj4.properties - один файл, он для обеих аппликаций. 

Код

log4j.debug=true 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} [%C] %-5p %x - %m%n

log4j.logger.com.compname=DEBUG, UPF, stdout
log4j.appender.UPF=org.apache.log4j.RollingFileAppender
log4j.appender.UPF.File=log/apl1.log
log4j.appender.UPF.MaxFileSize=5KB
log4j.appender.UPF.MaxBackupIndex=100
log4j.appender.UPF.layout=org.apache.log4j.PatternLayout
log4j.appender.UPF.layout.ConversionPattern=%d{ISO8601} %c %x - %m%n

# For sending Admin e-mails. Uncomment to configure admin e-mails
log4j.logger.email.notifyer=debug,email,UPF
log4j.appender.email=org.apache.log4j.net.SMTPAppender
log4j.appender.email.SMTPHost=some.host
log4j.appender.email.BufferSize=1
log4j.appender.email.threshold=ERROR
[email protected]
[email protected]
log4j.appender.email.subject=[prod] Admin Message
log4j.appender.email.layout=org.apache.log4j.PatternLayout
log4j.appender.email.layout.ConversionPattern=%d{ISO8601} %5p [%t] (%F:%L) - %m%n


log4j.logger.com.compname.integ.apl2=DEBUG, UPF2, stdout,email
log4j.appender.UPF2=org.apache.log4j.RollingFileAppender
log4j.appender.UPF2.File=log/apl2.log
log4j.appender.UPF2.MaxFileSize=1KB
log4j.appender.UPF2.MaxBackupIndex=100
log4j.appender.UPF2.layout=org.apache.log4j.PatternLayout
log4j.appender.UPF.layout.ConversionPattern=%d{ISO8601} %c %x - %m%n


log4j.logger.EG=debug,email,UPF,stdout
log4j.logger.MSC=debug,email_MSC,UPF_MSC,stdout

log4j.appender.UPF_MSC=org.apache.log4j.RollingFileAppender
log4j.appender.UPF_MSC.File=log/apl2-msc.log
log4j.appender.UPF_MSC.MaxFileSize=10MB
log4j.appender.UPF_MSC.MaxBackupIndex=100
log4j.appender.UPF_MSC.layout=org.apache.log4j.PatternLayout
log4j.appender.UPF_MSC.layout.ConversionPattern=%d{ISO8601} %c %-5p %x - %m%n

log4j.appender.email_MSC=org.apache.log4j.net.SMTPAppender
log4j.appender.email_MSC.SMTPHost=medina.tabc.state.tx.us
log4j.appender.email_MSC.BufferSize=1
log4j.appender.email_MSC.threshold=ERROR
[email protected]
[email protected]
log4j.appender.email_MSC.subject=[prod] Admin Message (MSC)
log4j.appender.email_MSC.layout=org.apache.log4j.PatternLayout
log4j.appender.email_MSC.layout.ConversionPattern=%d{ISO8601} %5p [%t] (%F:%L) - %m%n

Автор: LSD 29.7.2009, 17:15
Цитата(progralex @  27.7.2009,  20:40 Найти цитируемый пост)
точка в класспат - да, там библиотеки и джары для драйверов. один logj4.properties - один файл, он для обеих аппликаций. 

Дык что ты тогда хочешь? У тебя оба приложения используют одну и ту же текущую директорию, и один и тот же logj4.properties. Следовательно пытаются писать логи в одни и те же файлы. Создай два разных logj4.properties, для каждого приложения свой.

Автор: progralex 4.8.2009, 17:41
LSD, файл один, и деректория одна, но файлы для каждой аппликации - свои.... Хотя может и верно, тогда - если для каждой аппликации свой jar и они в одной папке, как сделать чтобы у каждой был свой log4j.properties?

Автор: dima32 15.8.2009, 00:02
В батнике укажи путь к файлу log4j
-Dlog4j.configuration=/path/to/file
как описано 
http://www.log4j.ru/articles/ConfiguationFiles.html

Дима.

Автор: LSD 25.8.2009, 16:16
Цитата(progralex @  4.8.2009,  17:41 Найти цитируемый пост)
файл один, и деректория одна, но файлы для каждой аппликации - свои....

В том то и дело, что нет. То что у тебя первое приложение использует аппендер UPF, а в UPF2 не пишет, еще не значит, что RollingFileAppender не инициализируется и не лочит файл apl2.log.

Так что самый правильный вариант это разные logj4.properties, как тебе подсказал dima32.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)