You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(38) |
Sep
(126) |
Oct
(23) |
Nov
(72) |
Dec
(36) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(76) |
Feb
(32) |
Mar
(19) |
Apr
(6) |
May
(54) |
Jun
(40) |
Jul
(45) |
Aug
(35) |
Sep
(51) |
Oct
(67) |
Nov
(10) |
Dec
(50) |
2004 |
Jan
(51) |
Feb
(22) |
Mar
(22) |
Apr
(28) |
May
(53) |
Jun
(99) |
Jul
(38) |
Aug
(49) |
Sep
(23) |
Oct
(29) |
Nov
(30) |
Dec
(48) |
2005 |
Jan
(15) |
Feb
(21) |
Mar
(25) |
Apr
(16) |
May
(131) |
Jun
|
Jul
(8) |
Aug
(5) |
Sep
(15) |
Oct
|
Nov
(15) |
Dec
(12) |
2006 |
Jan
(15) |
Feb
(20) |
Mar
(8) |
Apr
(10) |
May
(3) |
Jun
(16) |
Jul
(15) |
Aug
(11) |
Sep
(17) |
Oct
(27) |
Nov
(11) |
Dec
(12) |
2007 |
Jan
(19) |
Feb
(18) |
Mar
(33) |
Apr
(4) |
May
(15) |
Jun
(22) |
Jul
(19) |
Aug
(20) |
Sep
(14) |
Oct
(4) |
Nov
(34) |
Dec
(11) |
2008 |
Jan
(8) |
Feb
(18) |
Mar
(2) |
Apr
(4) |
May
(26) |
Jun
(9) |
Jul
(8) |
Aug
(8) |
Sep
(3) |
Oct
(17) |
Nov
(14) |
Dec
(4) |
2009 |
Jan
(6) |
Feb
(41) |
Mar
(21) |
Apr
(10) |
May
(21) |
Jun
|
Jul
(8) |
Aug
(4) |
Sep
(3) |
Oct
(8) |
Nov
(6) |
Dec
(5) |
2010 |
Jan
(14) |
Feb
(13) |
Mar
(7) |
Apr
(12) |
May
(4) |
Jun
(1) |
Jul
(11) |
Aug
(5) |
Sep
|
Oct
(1) |
Nov
(10) |
Dec
|
2011 |
Jan
(7) |
Feb
(3) |
Mar
(1) |
Apr
(5) |
May
|
Jun
(1) |
Jul
(6) |
Aug
(6) |
Sep
(10) |
Oct
(5) |
Nov
(4) |
Dec
(5) |
2012 |
Jan
(4) |
Feb
(5) |
Mar
(1) |
Apr
(7) |
May
(1) |
Jun
|
Jul
(2) |
Aug
|
Sep
(5) |
Oct
(5) |
Nov
(4) |
Dec
(5) |
2013 |
Jan
(6) |
Feb
|
Mar
(14) |
Apr
(9) |
May
(3) |
Jun
(2) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
(4) |
Dec
(6) |
2014 |
Jan
|
Feb
(1) |
Mar
(10) |
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
(1) |
Nov
|
Dec
(4) |
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: Tod H. <th...@gi...> - 2004-10-26 12:57:15
|
Mike Schilli wrote: >On Mon, 18 Oct 2004, Tod Harter wrote: > > > >>There are at least 3 different documented ways to define a logging category >> >>1) log4perl.categoryname = ... >>2) log4perl.category.categoryname = ... >>3) log4perl.logger.categoryname = ... >> >> > >"logger" and "category" are indeed synonyms and can be used interchangeably. >But I'd be surprised if 1) worked. > > OK, maybe #1 is just a special case for the root logger. >>And as for the root logger, method 1 works and method 2 may work but >>doesn't seem to work in all cases, though I didn't explore that enough >>to be sure >>of exactly what was going on. >> >> > >If you find cases which don't work, I'd be very interested to hear about >them. > > I'll see if I can come up with a test case. log4perl.oneMessagePerAppender = 1 didn't seem to work, hmmm. It seems to me that config file parsing ignores a lot of errors. It would be really nice to be able to have either a logging configuration checker or a 'pedantic' mode that throws an error on anything non-kosher it sees in the config file. Overall its a pretty nice system, though if I'd have designed L4J I think I'd have stuck more to a philosophy of 'what not how' in terms of configuration (IE why not have the directives organized in such a way as to describe where log file entries would end up as opposed to how the handlers are stacked) but thats neither here nor there... Keep up the good work, its appreciated. |
From: Mike S. <m...@pe...> - 2004-10-26 05:51:55
|
On Mon, 18 Oct 2004, Tod Harter wrote: > There are at least 3 different documented ways to define a logging category > > 1) log4perl.categoryname = ... > 2) log4perl.category.categoryname = ... > 3) log4perl.logger.categoryname = ... "logger" and "category" are indeed synonyms and can be used interchangeably. But I'd be surprised if 1) worked. > and as well at least 2 ways of defining the root logger (maybe others > work as well....). > > 1) log4perl.rootLogger = .... > 2) log4perl.logger = ... Correct. And even log4perl.category will work. That's TMTOWTDI. > Method 1 of defining a category does not work, at least not on my system! > Method 2 does work > Method 3 I haven't tested Can you point out where 1) is endorsed in the docs? > And as for the root logger, method 1 works and method 2 may work but > doesn't seem to work in all cases, though I didn't explore that enough > to be sure > of exactly what was going on. If you find cases which don't work, I'd be very interested to hear about them. > Anyway, thanks for the help, now all I have to conquer is 'additivity' > (which it seems to me for most simple applications the default aught to > be the opposite, but whatever > thats just my personal preference). That's a topic which is discussed controversly in L4j land as well. It's just a default setting though, and it can be adjusted to your preferences easily. -- Mike Mike Schilli m...@pe... |
From: Mike S. <m...@pe...> - 2004-10-26 05:36:54
|
On Mon, 18 Oct 2004 Pet...@ub... wrote: > i have a further problem that will complicate the matter:( > > I have thousands of die and warn statements that i dont intend to > change, so hence the use of logdie and logwarn with the following > signal trap: > > $SIG{__WARN__} = sub { > local $Log::Log4perl::caller_depth = > $Log::Log4perl::caller_depth + 1; > WARN @_; > }; > > $SIG{__DIE__} = sub { > $Log::Log4perl::caller_depth++; > my ($temp) = @_; > $temp =~ s/\n//ig; > LOGDIE $temp; > }; > > given this limitation how can i only log the formatted log4perl > messages and ignore duplicated warn/die messages? Sorry for the slow response ... the signal traps look ok, but I didn't quite get the reference to the duplicated warn/die messages. Can you explain what's duplicated? You might be able to resolve the issue with a custom filter, but I need more details on the problem to suggest a solution. -- Mike Mike Schilli m...@pe... |
From: Mike S. <m...@pe...> - 2004-10-22 18:00:56
|
On Fri, 22 Oct 2004, Manu Mehta wrote: > I am getting error installing log4perl on windows as follows: > > C:\>ppm install "http://log4perl.sourceforge.net/ppm/Log-Log4perl.ppd"; > Installing package > 'http://log4perl.sourceforge.net/ppm/Log-Log4perl.ppd;'... > Error installing package > 'http://log4perl.sourceforge.net/ppm/Log-Log4perl.ppd;' You need to get rid of the semicolon (";"). Just checked, this is a typo in the FAQ (evidently caused by the HTML formatter, hmmm): http://log4perl.sourceforge.net/d/html/Log/Log4perl/FAQ.html#f7dc3 Also make sure you're using the right method, depending on whether you run ActiveState 5.6 or 5.8. -- Mike Mike Schilli m...@pe... |
From: Sheel M. <she...@ho...> - 2004-10-22 13:18:56
|
Hello, I am getting error installing log4perl on windows as follows: C:\>ppm install "http://log4perl.sourceforge.net/ppm/Log-Log4perl.ppd"; Installing package 'http://log4perl.sourceforge.net/ppm/Log-Log4perl.ppd;'... Error installing package 'http://log4perl.sourceforge.net/ppm/Log-Log4perl.ppd;' : Could not locate a PPD file for package http://log4perl.sourceforge.net/ppm/Lo g-Log4perl.ppd; Please advise. Thanks, -Sheel ___________________________________________________________ Sent by ePrompter, the premier email notification software. Free download at http://www.ePrompter.com. |
From: Manu M. <man...@ho...> - 2004-10-22 13:13:55
|
Hello, I am getting error installing log4perl on windows as follows: C:\>ppm install "http://log4perl.sourceforge.net/ppm/Log-Log4perl.ppd"; Installing package 'http://log4perl.sourceforge.net/ppm/Log-Log4perl.ppd;'... Error installing package 'http://log4perl.sourceforge.net/ppm/Log-Log4perl.ppd;' : Could not locate a PPD file for package http://log4perl.sourceforge.net/ppm/Lo g-Log4perl.ppd; Please advise. Thanks, -Sheel ___________________________________________________________ Sent by ePrompter, the premier email notification software. Free download at http://www.ePrompter.com. _________________________________________________________________ Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ |
From: exavier <li...@ac...> - 2004-10-21 19:44:11
|
<HTML> <BODY> <p align=justify> <FONT COLOR="red"><B>Приносим свои извинения, если наше письмо попало к Вам по ошибке.</B></FONT> <p align=justify> <B>Идеальный вариант для среднего и малого бизнеса</B> <p align=justify> <B>1. Визитки.</B> Офсетная печать (формат 50х90 мм, полноцветная, 4+4, бумага 300 г.)<BR> Сроки изготовления от 2 до 5 дней. <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>Тираж </TD> <TD>500 </TD> <TD>1000 </TD> <TD>2000 </TD> <TD>3000 </TD> <TD>4000 </TD> <TD>5000 </TD> <TD>6000 </TD> <TD>7000 </TD> <TD>8000 </TD> <TD>9000 </TD> </TR> <TR> <TD>Цена </TD> <TD>30 </TD> <TD>34 </TD> <TD>44 </TD> <TD>61 </TD> <TD>75 </TD> <TD>84 </TD> <TD>95 </TD> <TD>108 </TD> <TD>130 </TD> <TD>145 </TD> </TR> </TABLE> <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>10000 </TD> <TD>12000 </TD> <TD>14000 </TD> <TD>16000 </TD> <TD>18000 </TD> <TD>20000 </TD> <TD>30000 </TD> <TD>40000 </TD> <TD>50000 </TD> <TD>60000 </TD> </TR> <TR> <TD>160 </TD> <TD>180 </TD> <TD>205 </TD> <TD>224 </TD> <TD>243 </TD> <TD>265 </TD> <TD>335 </TD> <TD>445 </TD> <TD>515 </TD> <TD>585 </TD> </TR> </TABLE> <p align=justify> <B>2. Визитки.</B> Цифровая печать (формат 50х90 мм, печать полноцветная, 4+0, бумага 300 г/м, супервайс, лен) <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>Тираж </TD> <TD>100 </TD> <TD>200 </TD> <TD>300 </TD> <TD>400 </TD> <TD>500 </TD> <TD>600 </TD> <TD>700 </TD> <TD>800 </TD> <TD>900 </TD> <TD>1000 </TD> </TR> <TR> <TD>Цена </TD> <TD>10 </TD> <TD>16 </TD> <TD>27 </TD> <TD>35 </TD> <TD>43 </TD> <TD>51 </TD> <TD>59 </TD> <TD>67 </TD> <TD>75 </TD> <TD>83 </TD> </TR> </TABLE> <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>1100 </TD> <TD>1200 </TD> <TD>1300 </TD> <TD>1400 </TD> <TD>1500 </TD> <TD>1600 </TD> <TD>1700 </TD> <TD>1800 </TD> <TD>1900 </TD> <TD>2000 </TD> </TR> <TR> <TD>90 </TD> <TD>96 </TD> <TD>102 </TD> <TD>108 </TD> <TD>114 </TD> <TD>120 </TD> <TD>125 </TD> <TD>130 </TD> <TD>135 </TD> <TD>140 </TD> </TR> </TABLE> <p align=justify> <B>3. Карманные календари</B> – формат 70х100; 55х85 (бумага 300 г., печать полноцветная, 4+4, ламинация 32 мкр, скругление углов) <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>Тираж </TD> <TD>300 </TD> <TD>500 </TD> <TD>1000 </TD> <TD>2000 </TD> <TD>3000 </TD> <TD>4000 </TD> <TD>5000 </TD> <TD>6000 </TD> <TD>7000 </TD> <TD>8000 </TD> </TR> <TR> <TD>Цена </TD> <TD>33 </TD> <TD>40 </TD> <TD>48 </TD> <TD>90 </TD> <TD>125 </TD> <TD>137 </TD> <TD>149 </TD> <TD>175 </TD> <TD>200 </TD> <TD>226 </TD> </TR> </TABLE> <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>9000 </TD> <TD>10000 </TD> <TD>20000 </TD> <TD>30000 </TD> <TD>40000 </TD> <TD>50000 </TD> <TD>60000 </TD> <TD>70000 </TD> <TD>80000 </TD> <TD>90000 </TD> <TD>100000 </TD> </TR> <TR> <TD>252 </TD> <TD>277 </TD> <TD>516 </TD> <TD>720 </TD> <TD>920 </TD> <TD>1070 </TD> <TD>1228 </TD> <TD>1386 </TD> <TD>1544 </TD> <TD>1702 </TD> <TD>1860 </TD> </TR> </TABLE> <p align=justify> <B>4. Календари настенные,</B> на пружинах (ежеквартальники) <p align=justify> Индивидуальный полноцветный постер, (4+0), дизайн изображения можеть быть подготовлен нами, или предоставлен Ваш готовый макет. Печать на картоне плотностью 250 г\м2. Размер постера: 300х210 мм, лакировка, установка колечка «пикколо». <p align=justify> Календарный блок двухкрасочный (2+0), высококачественная офсетная бумага 80 г\м2, размер календарной сетки одного месяца: 300х145 мм. <p align=justify> Рекламная подложка – картон 250 г\м2, размер поля для рекламы: 300х50 мм. <p align=justify> <B>а) Календарь на трех пружинах</B> <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>Тираж </TD> <TD>5</TD> <TD>10</TD> <TD>20</TD> <TD>50</TD> <TD>100</TD> <TD>200</TD> </TR> <TR> <TD>Цена* </TD> <TD>9,9 </TD> <TD>7,70 </TD> <TD>5,70 </TD> <TD>4,80 </TD> <TD>3,70 </TD> <TD>3,20 </TD> </TR> </TABLE> <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>300 </TD> <TD>500 </TD> <TD>700 </TD> <TD>1000 </TD> <TD>3000 </TD> <TD>8000 </TD> </TR> <TR> <TD>2,70 </TD> <TD>1,9 </TD> <TD>1,85 </TD> <TD>1,80 </TD> <TD>1,65 </TD> <TD>1,60 </TD> </TR> </TABLE> <p align=justify> <B>б) Календарь на 1-ой пружине, квартальный</B> <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>Тираж </TD> <TD>5</TD> <TD>10</TD> <TD>20</TD> <TD>50</TD> <TD>100</TD> <TD>200</TD> </TR> <TR> <TD>Цена* </TD> <TD>7,2 </TD> <TD>6,8 </TD> <TD>5,6 </TD> <TD>4,2 </TD> <TD>3,1 </TD> <TD>2,25 </TD> </TR> </TABLE> <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>300 </TD> <TD>500 </TD> <TD>700 </TD> <TD>1000 </TD> <TD>3000 </TD> <TD>5000 </TD> </TR> <TR> <TD>2,0 </TD> <TD>1,6 </TD> <TD>1,52 </TD> <TD>1,42 </TD> <TD>1,3 </TD> <TD>1,2 </TD> </TR> </TABLE> <p align=justify> <B>в) Календарь на 1-ой пружине, с одним календарным блоком</B> <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>Тираж </TD> <TD>5</TD> <TD>10</TD> <TD>20</TD> <TD>50</TD> <TD>100</TD> <TD>200</TD> <TD>300</TD> <TD>500</TD> <TD>700</TD> <TD>1000</TD> </TR> <TR> <TD>Цена* </TD> <TD>4,2 </TD> <TD>3,4 </TD> <TD>2,9 </TD> <TD>2,52 </TD> <TD>2,16 </TD> <TD>1,71 </TD> <TD>1,48 </TD> <TD>1,24 </TD> <TD>1,15 </TD> <TD>1,06 </TD> </TR> </TABLE> <p align=justify> <B>*Цена указана за 1 экз.</B> <p align=justify> <B>Внимание! Специальное предложение для тех, кто хочет выделиться!</B><BR> <B>Вырубные календари с фигурными постерами (шапками)!</B> <p align=justify> Эти календари, просто привлекают внимание. Такие мало у кого встретишь.<BR> Оригинальный курсор – такого вы точно еще не видели! Дороже стандартных на 10-15%. <BR> Каждый заказ рассчитывается индивидуально, звоните!<BR> <p align=justify> <B>5. Листовки, буклеты</B> Бумага 150 гр\м2, печать полноцветная, 4+4.<BR> Сроки изготовления от 2 до 5 дней. <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>Размер/ Тираж </TD> <TD>500 </TD> <TD>1000 </TD> <TD>2000 </TD> <TD>3000 </TD> <TD>5000 </TD> <TD>10000 </TD> <TD>20000 </TD> </TR> <TR> <TD>1/3 А-4 (210х100) </TD> <TD>50 </TD> <TD>60 </TD> <TD>80 </TD> <TD>112 </TD> <TD>159 </TD> <TD>250 </TD> <TD>420 </TD> </TR> <TR> <TD>А-4 (210х297) </TD> <TD>95 </TD> <TD>105 </TD> <TD>200 </TD> <TD>270 </TD> <TD>430 </TD> <TD>690 </TD> <TD> </TD> </TR> <TR> <TD>А-4 (буклет 210х297, 2 сгиба) </TD> <TD>103 </TD> <TD>115 </TD> <TD>215 </TD> <TD>290 </TD> <TD>480 </TD> <TD> </TD> <TD> </TD> </TR> <TR> <TD>А-5 (210х150) </TD> <TD>80 </TD> <TD>95 </TD> <TD>112 </TD> <TD>160 </TD> <TD> </TD> <TD> </TD> <TD> </TD> </TR> <TR> <TD>А-3 (300х420) </TD> <TD>145 </TD> <TD>210 </TD> <TD>350 </TD> <TD>435 </TD> <TD> </TD> <TD> </TD> <TD> </TD> </TR> </TABLE> <p align=justify> <B>6. Флаерсы (бумага 300 г., печать полноцветная, 4+4)</B> <p align=justify> <TABLE border=1 cellspacing=0 cellpadding=5> <TR> <TD>Размер\Тираж </TD> <TD>500 </TD> <TD>1000 </TD> <TD>2000 </TD> <TD>3000 </TD> <TD>4000 </TD> <TD>5000 </TD> </TR> <TR> <TD>70х100 </TD> <TD>38 </TD> <TD>42 </TD> <TD>52 </TD> <TD>75 </TD> <TD>97 </TD> <TD>115 </TD> </TR> <TR> <TD>100х150 </TD> <TD>63 </TD> <TD>79 </TD> <TD>98 </TD> <TD>133 </TD> <TD>169 </TD> <TD>209 </TD> </TR> <TR> <TD>100х210 </TD> <TD>79 </TD> <TD>103 </TD> <TD>125 </TD> <TD>174 </TD> <TD>223 </TD> <TD>259 </TD> </TR> </TABLE> <p align=justify> <B>7. Календари настольные, «домики»<BR> Лучшие цены!</B> <p align=justify> <B>Дизайн и изготовление оригинал макетов, pre-press</B>.<BR> Печать на Heidelberg Speedmaster, Roland 204, цифровая печать. <p align=justify> <B>Умение работать с любыми сроками.</B><BR> Все цены указаны в долларах США, по курсу ЦБ на день оплаты. <p align=justify> <B>Скидки, бесплатная доставка. Конфиденциальность.</B><BR> Каждый заказ рассчитывается индивидуально, звоните!<BR> <B>Цены включают в себя все основные расходы, НДС, пленки, за исключением оригинал-макета.</B> <p align=justify> <B>С нами работают регионы:</B><BR> Астрахань, Владикавказ, Воронеж, Калиниград, Калуга, <B>Магадан</B>, Надым, Нижний Новгород, Новосибирск, Оренбург. <p align=justify> <FONT COLOR="blue"><B>Тел.: 995-4648, 237-0161,</B></FONT><BR> <FONT COLOR="blue"><B>233-4460, 8-901-711-60-25</B></FONT> </BODY> </HTML> |
From: Mike S. <m...@pe...> - 2004-10-19 05:14:49
|
On Sun, 17 Oct 2004, Mike Schilli wrote: > Log4perl is highly optimized for speed, so if you change a level manually, > it has to redo its optimizations. Here's a (undocumented) way to do that: > > use Log::Log4perl qw(:levels); > # ... > my $logger = Log::Log4perl->get_logger('Hob.Harvester'); > $logger->level($DEBUG); > $logger->set_output_methods; Upon further review, you can skip the "set_output_methods" part. That's done by level() already. Sorry for the confusion! -- Mike Mike Schilli m...@pe... |
From: Tod H. <th...@gi...> - 2004-10-18 14:10:40
|
OK, here's what I've discovered in my research, using essentially your example: There are at least 3 different documented ways to define a logging category 1) log4perl.categoryname = ... 2) log4perl.category.categoryname = ... 3) log4perl.logger.categoryname = ... and as well at least 2 ways of defining the root logger (maybe others work as well....). 1) log4perl.rootLogger = .... 2) log4perl.logger = ... Method 1 of defining a category does not work, at least not on my system! Method 2 does work Method 3 I haven't tested And as for the root logger, method 1 works and method 2 may work but doesn't seem to work in all cases, though I didn't explore that enough to be sure of exactly what was going on. So the upshot is that between the manual, other pod files for Appenders, etc, and the tutorial(s) there are some errr discrepencies. Anyway, thanks for the help, now all I have to conquer is 'additivity' (which it seems to me for most simple applications the default aught to be the opposite, but whatever thats just my personal preference). Thanks again. >I'd be very surprised if that was true. Here's a test case that works: > > use Log::Log4perl qw(get_logger); > > my $conf = q( > log4perl.rootLogger = INFO, Screen > log4perl.category.Bar = DEBUG, Screen > log4perl.category.Bar.Twix = DEBUG, Screen > log4perl.appender.Screen = Log::Log4perl::Appender::Screen > log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout > ); > > Log::Log4perl::init(\$conf); > > my $logger = get_logger("Bar::Twix"); > $logger->debug("Message to Bar::Twix"); > > my $barlogger = get_logger("Bar"); > $barlogger->debug("Message to Bar"); > >Can you provide a simple case like this, confirming what you're suspecting? > >-- Mike > >Mike Schilli >m...@pe... > > |
From: <Pet...@ub...> - 2004-10-18 09:25:58
|
Hi Mike, i have a further problem that will complicate the matter:( I have thousands of die and warn statements that i dont intend to = change, so hence the use of logdie and logwarn with the following signal = trap: $SIG{__WARN__} =3D sub { local $Log::Log4perl::caller_depth =3D $Log::Log4perl::caller_depth + 1; WARN @_; }; $SIG{__DIE__} =3D sub { $Log::Log4perl::caller_depth++; my ($temp) =3D @_; $temp =3D~ s/\n//ig; LOGDIE $temp; }; given this limitation how can i only log the formatted log4perl messages = and ignore duplicated warn/die messages? any thoughs=20 Peter Gibbons=20 UBS Investment Bank, Equities IT 9 Appold Street, London, EC2A 2HL Tel: 0207 568 7970 Internal: (1931) 87970 =20 -----Original Message----- From: Mike Schilli [mailto:m...@pe...] Sent: 15 October 2004 18:47 To: Gibbons, Peter Cc: log...@li... Subject: Re: [log4perl-devel] die and fatal On Fri, 15 Oct 2004 Pet...@ub... wrote: > I would like to remove the final entry of 'arrrrhhhhhhhh' from my = output, it was produced with a $logger->logdie("arrrrhhhhhhhh") or if i = use a $logger->logwarn("arrrrhhhhhhhh"); > > bash-2.05b$ perl eqtas_scheduler.pl > [2004/10/15 17:24:44] [INFO] [MESSAGE:Commencing Command Line Batch = run, details to follow..] [SENDER:scheduler.pl] [LINE:62] > [2004/10/15 17:24:44] [FATAL] [MESSAGE:arrrrhhhhhhhh] = [SENDER:scheduler.pl] [LINE:63] > > arrrrhhhhhhhh at scheduler.pl line 63 Instead of $logger->logdie("xxx"), if you call $logger->fatal("xxx"); exit 0; then you just get the message logged, no message from die() on STDERR. = Maybe we should add $logger->logexit("xxx"); to Log::Log4perl which logs a FATAL message and then just exits? -- Mike Mike Schilli m...@pe... Visit our website at http://www.ubs.com This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of e-mail transmission. If verification is required please request a hard-copy version. This message is provided for informational purposes and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments. |
From: Mike S. <m...@pe...> - 2004-10-17 21:00:53
|
On Sun, 17 Oct 2004, Richard Lippmann wrote: > I like Log::Log4perl more and more. Great :) > But I have a problem changing > loglevel in my program. I do this for config Log::Log4perl: > > my $log_conf = q/ > log4perl.category = INFO, Logfile, Screen > ... > log4perl.logger.main = INFO > log4perl.logger.Hob.ReorderFiles = INFO > log4perl.logger.Hob.Inventory = INFO > log4perl.logger.Hob.GetWishlist = INFO > log4perl.logger.Hob.Harvester = INFO > /; > > Now I want to set loglevel form Hob.Harvester to "DEBUG" because there > is a record for this in my config(xml)file for the programm. How do I do > that? > > I could do this: > > my $logger = Log::Log4perl->get_logger('Hob.Harvester'); > $logger->more_logging(2); > > But I would love to do this: > > $logger->set_loglevel_to(DEBUG) Log4perl is highly optimized for speed, so if you change a level manually, it has to redo its optimizations. Here's a (undocumented) way to do that: use Log::Log4perl qw(:levels); # ... my $logger = Log::Log4perl->get_logger('Hob.Harvester'); $logger->level($DEBUG); $logger->set_output_methods; Along with more_logging() and less_logging(), we should probably provide a reassign_level() method for the loggers ... -- Mike Mike Schilli m...@pe... |
From: Richard L. <lip...@sp...> - 2004-10-17 15:30:51
|
I like Log::Log4perl more and more. But I have a problem changing loglevel in my program. I do this for config Log::Log4perl: my $log_conf = q/ log4perl.category = INFO, Logfile, Screen ... log4perl.logger.main = INFO log4perl.logger.Hob.ReorderFiles = INFO log4perl.logger.Hob.Inventory = INFO log4perl.logger.Hob.GetWishlist = INFO log4perl.logger.Hob.Harvester = INFO /; Now I want to set loglevel form Hob.Harvester to "DEBUG" because there is a record for this in my config(xml)file for the programm. How do I do that? I could do this: my $logger = Log::Log4perl->get_logger('Hob.Harvester'); $logger->more_logging(2); But I would love to do this: $logger->set_loglevel_to(DEBUG) Is there a chance? Thanks! Richard -- Richard Lippmann, Nuernberg, Germany Private: http://lena.franken.de Bussiness with Findus Internet-OPAC: http://www.findus-internet-opac.de |
From: Mike S. <m...@pe...> - 2004-10-15 17:46:57
|
On Fri, 15 Oct 2004 Pet...@ub... wrote: > I would like to remove the final entry of 'arrrrhhhhhhhh' from my output, it was produced with a $logger->logdie("arrrrhhhhhhhh") or if i use a $logger->logwarn("arrrrhhhhhhhh"); > > bash-2.05b$ perl eqtas_scheduler.pl > [2004/10/15 17:24:44] [INFO] [MESSAGE:Commencing Command Line Batch run, details to follow..] [SENDER:scheduler.pl] [LINE:62] > [2004/10/15 17:24:44] [FATAL] [MESSAGE:arrrrhhhhhhhh] [SENDER:scheduler.pl] [LINE:63] > > arrrrhhhhhhhh at scheduler.pl line 63 Instead of $logger->logdie("xxx"), if you call $logger->fatal("xxx"); exit 0; then you just get the message logged, no message from die() on STDERR. Maybe we should add $logger->logexit("xxx"); to Log::Log4perl which logs a FATAL message and then just exits? -- Mike Mike Schilli m...@pe... |
From: Mike S. <m...@pe...> - 2004-10-15 17:36:27
|
On Fri, 15 Oct 2004, Tod Harter wrote: > OK, basically what I have is mod_perl handlers, so its a bit tough to > call it a 'program', there is > no main application. That's fine. > The behaviour I get with the test is exactly consistent with my > application. I have 1 appender which I use SYNCER, so everything goes to > one log file. It appears that if I set up category 'MyTest' to 'DEBUG' > then even if rootLogger is 'FATAL' I get the messages from MyTest and > MyTest.detail, which is what I would expect (assuming they are both set > at level 'DEBUG'). That's what I would expect, too. But are you sure you want to use a sub category ".detail"? Seems like controlling the output via log levels when calling the logging functions ($log->debug(...), $log->error(...)) would be easier. > But if I set MyTest to 'INFO' I don't even get the > informational message logged at that category at level INFO!!! And I > certainly never get level MyTest.detail unless MyTest is at DEBUG. Your L4p configuration file seems to contain a syntax error: log4perl MyTest.detail (dot missing) > It appears that get_logger() ignores its argument and just uses package > names as categories all the time. I'd be very surprised if that was true. Here's a test case that works: use Log::Log4perl qw(get_logger); my $conf = q( log4perl.rootLogger = INFO, Screen log4perl.category.Bar = DEBUG, Screen log4perl.category.Bar.Twix = DEBUG, Screen log4perl.appender.Screen = Log::Log4perl::Appender::Screen log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout ); Log::Log4perl::init(\$conf); my $logger = get_logger("Bar::Twix"); $logger->debug("Message to Bar::Twix"); my $barlogger = get_logger("Bar"); $barlogger->debug("Message to Bar"); Can you provide a simple case like this, confirming what you're suspecting? -- Mike Mike Schilli m...@pe... |
From: <Pet...@ub...> - 2004-10-15 16:31:08
|
Hi there, I would like to remove the final entry of 'arrrrhhhhhhhh' from my = output, it was produced with a $logger->logdie("arrrrhhhhhhhh") or if i = use a $logger->logwarn("arrrrhhhhhhhh"); bash-2.05b$ perl eqtas_scheduler.pl [2004/10/15 17:24:44] [INFO] [MESSAGE:Commencing Command Line Batch run, = details to follow..] [SENDER:scheduler.pl] [LINE:62] [2004/10/15 17:24:44] [FATAL] [MESSAGE:arrrrhhhhhhhh] = [SENDER:scheduler.pl] [LINE:63] arrrrhhhhhhhh at scheduler.pl line 63 is there some way to supress the latter dulpicated arrrrhhhhhhhh = message, as i dont want duplicate entries in my logs. many thanks pg Peter Gibbons=20 UBS Investment Bank, Equities IT 9 Appold Street, London, EC2A 2HL Tel: 0207 568 7970 Internal: (1931) 87970 =20 Visit our website at http://www.ubs.com This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of e-mail transmission. If verification is required please request a hard-copy version. This message is provided for informational purposes and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments. |
From: Tod H. <th...@gi...> - 2004-10-15 14:14:20
|
OK, basically what I have is mod_perl handlers, so its a bit tough to call it a 'program', there is no main application. I'll try to condense it down to an example handler that should be easy to look at. The environment is: Mandrake Linux 10.0 official Apache 2.0.50 Perl 5.8.5 mod_perl 1.99_16 Log::Log4perl 0.48 The attached files are: init.pl - PerlRequired script, this runs at server startup and inits Log4perl and loads MyTest.pm MyTest.pm - simple modperl handler logging.conf - sample logging configuration vhost.conf - Apache configuration that runs all of this mess The behaviour I get with the test is exactly consistent with my application. I have 1 appender which I use SYNCER, so everything goes to one log file. It appears that if I set up category 'MyTest' to 'DEBUG' then even if rootLogger is 'FATAL' I get the messages from MyTest and MyTest.detail, which is what I would expect (assuming they are both set at level 'DEBUG'). But if I set MyTest to 'INFO' I don't even get the informational message logged at that category at level INFO!!! And I certainly never get level MyTest.detail unless MyTest is at DEBUG. It appears that get_logger() ignores its argument and just uses package names as categories all the time. The problem is this means I can either get a giant blast of every debugging message my application could possibly generate (some of the packages are fairly extensive) or NOTHING. Furthermore even if get_logger() does ignore its argument I should STILL get the INFO level message put out at category MyTest!!! Why do I have to set a level of DEBUG for MyTest just to see an INFO level message???!!! Its all making my head hurt. ;) Thanks for getting back to me. Let me know if you see anything in my setup that explains all this, Thanks again! Tod Harter, TradeDesk Software On Thu, 14 Oct 2004, Tod Harter wrote: >> My configuration file... Can you also provide a code sample? Ideally, a test case of what you're seeing and what you're expecting. >> I've also discovered that if you set your rootLogger to say 'INFO' and >> lower levels of the heirarchy to 'DEBUG', you NEVER get anything except >> 'INFO' >> level and lower from ANY part of the heirarchy. This seems to be in >> direct contradiction of the manual and tutorials. In this case, you'll get INFO messages in the root logger and DEBUG messages in the 'lower levels of the hierarchy' as you've defined. Example: use Log::Log4perl qw(get_logger); my $conf = q( log4perl.rootLogger = INFO, Screen log4perl.category.Bar.Twix = DEBUG, Screen log4perl.appender.Screen = Log::Log4perl::Appender::Screen log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout ); Log::Log4perl::init(\$conf); my $logger = get_logger("Bar::Twix"); $logger->debug("Blah"); prints two messages, one from each logger: DEBUG - Blah DEBUG - Blah Can you provide a test case if you're seeing anything suspicious? -- Mike Mike Schilli m...@pe... |
From: Jos I. B. <ka...@xs...> - 2004-10-15 11:24:43
|
On Oct 15, 2004, at 8:28 AM, Mike Schilli wrote: > Thanks for the patch ... I can certainly add it, but I'd rather like to > understand what's causing the problem. Do you have a test case? I'll be > happy to install SPOPS and try it out. It might be specific to our db-scheme, i don't know, but i can't share it right now. What i have done is add some debug info in Logger.pm: *{__PACKAGE__ . "::is_$lclevel"} = sub { $_[0]->{"is_" . $level}->($_[0], "is_" . $lclevel) if $_[0]->{"is_".$level}; unless( $_[0]->{"is_".$level} ) { use Carp::Trace qw[trace]; use Data::Dumper; warn trace(); warn Dumper \@_; warn "level: $level\nlclevel: $lclevel\n"; } }; So now it warns with a bunch of information when we find the sub is undefined... the output this produces during our 'make test' is below the sig, but it basically looks like you have, unexpectedly, ended up with an empty log::log4perl object. > Ideally, I'd like to have a test case that I could add to our test > suite to make sure the bug gets fixed completely. Yeah, the spops test suite doesn't catch this, but to be honest, i'm not quite sure where to test this, or what this code is even supposed to be doing... this was a poor man's patch to make it Stop Complaining ;) Hope the debug output below gives you something to go on though. -- Jos Boumans How do I prove I am not crazy to people who are? CPANPLUS http://cpanplus.sf.net [kane@god-dev ~...GOD/MMDB]$ make test PERL_DL_NONLAZY=1 /usr/local/bin/perl5.8.3 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/000-connect...................ok t/010-MMDB-Base.................ok 56/0Unknown type 93, defaulting to VARCHAR at /usr/local/lib/perl5/site_perl/5.8.3/SPOPS/SQLInterface.pm line 41. t/010-MMDB-Base.................ok 387/0 main::(eval) [3] void - no new stash t/010-MMDB-Base.t line 0 SPOPS::DESTROY [2] void - new stash t/010-MMDB-Base.t line 0 Log::Log4perl::Logger::__ANON__ [1] scalar - new stash /usr/local/lib/perl5/site_perl/5.8.3/SPOPS.pm line 183 $VAR1 = [ bless( {}, 'Log::Log4perl::Logger' ) ]; level: DEBUG lclevel: debug Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.6.1/Carp/Trace.pm line 40 during global destruction. main::(eval) [4] void - no new stash t/010-MMDB-Base.t line 0 SPOPS::DESTROY [3] void - new stash t/010-MMDB-Base.t line 0 SPOPS::AUTOLOAD [2] list - new stash /usr/local/lib/perl5/site_perl/5.8.3/SPOPS.pm line 183 Log::Log4perl::Logger::__ANON__ [1] scalar - new stash /usr/local/lib/perl5/site_perl/5.8.3/SPOPS.pm line 671 $VAR1 = [ bless( {}, 'Log::Log4perl::Logger' ) ]; level: INFO lclevel: info Use of uninitialized value in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.3/Log/Log4perl/Logger.pm line 684 during global destruction. (in cleanup) Undefined subroutine &main:: called at /usr/local/lib/perl5/site_perl/5.8.3/Log/Log4perl/Logger.pm line 684 during global destruction. t/010-MMDB-Base.................ok t/020-MMDB-Basic-Transaction....ok 63/0Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.6.1/Carp/Trace.pm line 40 during global destruction. main::(eval) [3] void - no new stash t/020-MMDB-Basic-Transaction.t line 0 SPOPS::DESTROY [2] void - new stash t/020-MMDB-Basic-Transaction.t line 0 Log::Log4perl::Logger::__ANON__ [1] scalar - new stash /usr/local/lib/perl5/site_perl/5.8.3/SPOPS.pm line 183 $VAR1 = [ bless( {}, 'Log::Log4perl::Logger' ) ]; level: DEBUG lclevel: debug Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.6.1/Carp/Trace.pm line 40 during global destruction. main::(eval) [4] void - no new stash t/020-MMDB-Basic-Transaction.t line 0 SPOPS::DESTROY [3] void - new stash t/020-MMDB-Basic-Transaction.t line 0 SPOPS::AUTOLOAD [2] list - new stash /usr/local/lib/perl5/site_perl/5.8.3/SPOPS.pm line 183 Log::Log4perl::Logger::__ANON__ [1] scalar - new stash /usr/local/lib/perl5/site_perl/5.8.3/SPOPS.pm line 671 $VAR1 = [ bless( {}, 'Log::Log4perl::Logger' ) ]; level: INFO lclevel: info Use of uninitialized value in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.3/Log/Log4perl/Logger.pm line 684 during global destruction. (in cleanup) Undefined subroutine &main:: called at /usr/local/lib/perl5/site_perl/5.8.3/Log/Log4perl/Logger.pm line 684 during global destruction. t/020-MMDB-Basic-Transaction....ok t/021-MMDB-Data-Transaction.....ok 19/0Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.6.1/Carp/Trace.pm line 40 during global destruction. main::(eval) [3] void - no new stash t/021-MMDB-Data-Transaction.t line 0 SPOPS::DESTROY [2] void - new stash t/021-MMDB-Data-Transaction.t line 0 Log::Log4perl::Logger::__ANON__ [1] scalar - new stash /usr/local/lib/perl5/site_perl/5.8.3/SPOPS.pm line 183 $VAR1 = [ bless( {}, 'Log::Log4perl::Logger' ) ]; level: DEBUG lclevel: debug Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.6.1/Carp/Trace.pm line 40 during global destruction. main::(eval) [4] void - no new stash t/021-MMDB-Data-Transaction.t line 0 SPOPS::DESTROY [3] void - new stash t/021-MMDB-Data-Transaction.t line 0 SPOPS::AUTOLOAD [2] list - new stash /usr/local/lib/perl5/site_perl/5.8.3/SPOPS.pm line 183 Log::Log4perl::Logger::__ANON__ [1] scalar - new stash /usr/local/lib/perl5/site_perl/5.8.3/SPOPS.pm line 671 $VAR1 = [ bless( {}, 'Log::Log4perl::Logger' ) ]; level: INFO lclevel: info Use of uninitialized value in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.3/Log/Log4perl/Logger.pm line 684 during global destruction. (in cleanup) Undefined subroutine &main:: called at /usr/local/lib/perl5/site_perl/5.8.3/Log/Log4perl/Logger.pm line 684 during global destruction. t/021-MMDB-Data-Transaction.....ok All tests successful. Files=4, Tests=473, 3 wallclock secs ( 2.02 cusr + 0.14 csys = 2.16 CPU) [kane@god-dev ~...GOD/MMDB]$ |
From: Chris W. <ch...@cw...> - 2004-10-15 10:44:19
|
On Oct 15, 2004, at 2:28 AM, Mike Schilli wrote: > Thanks for the patch ... I can certainly add it, but I'd rather like to > understand what's causing the problem. Do you have a test case? I'll be > happy to install SPOPS and try it out. > > Just out of curiosity: Are you guys defining additional log levels? Nope, it's a plain vanilla use. > Ideally, I'd like to have a test case that I could add to our test > suite to make sure the bug gets fixed completely. I'm not sure about the conditions that recreate this, so hopefully Jos can help out. The only issue I had was dealing with DESTROY -- for some reason the SPOPS package lexical $log went out of scope before one or more SPOPS objects did. Rather than figure out was was wrong I just wrapped the logging call in DESTROY in a 'if ( defined $log ) ...' and it seemed to work. Chris -- Chris Winters Creating enterprise-capable snack systems since 1988 |
From: Mike S. <m...@pe...> - 2004-10-15 06:53:34
|
On Thu, 14 Oct 2004, Tod Harter wrote: > My configuration file... Can you also provide a code sample? Ideally, a test case of what you're seeing and what you're expecting. > I've also discovered that if you set your rootLogger to say 'INFO' and > lower levels of the heirarchy to 'DEBUG', you NEVER get anything except > 'INFO' > level and lower from ANY part of the heirarchy. This seems to be in > direct contradiction of the manual and tutorials. In this case, you'll get INFO messages in the root logger and DEBUG messages in the 'lower levels of the hierarchy' as you've defined. Example: use Log::Log4perl qw(get_logger); my $conf = q( log4perl.rootLogger = INFO, Screen log4perl.category.Bar.Twix = DEBUG, Screen log4perl.appender.Screen = Log::Log4perl::Appender::Screen log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout ); Log::Log4perl::init(\$conf); my $logger = get_logger("Bar::Twix"); $logger->debug("Blah"); prints two messages, one from each logger: DEBUG - Blah DEBUG - Blah Can you provide a test case if you're seeing anything suspicious? -- Mike Mike Schilli m...@pe... |
From: Mike S. <m...@pe...> - 2004-10-15 06:28:58
|
On Thu, 14 Oct 2004, Jos I. Boumans wrote: > Recent versions of SPOPS use your Log::Log4perl module to provide > logging. Great! > However, > it sometimes (just under SPOPS it seems) manages to call a coderef that > isn't there. > I've tracked down the problem to Log4perl::Logger around line 690, > where a sub > is installed in the namespace based on a variable that turns out to be > undefined. Thanks for the patch ... I can certainly add it, but I'd rather like to understand what's causing the problem. Do you have a test case? I'll be happy to install SPOPS and try it out. Just out of curiosity: Are you guys defining additional log levels? Ideally, I'd like to have a test case that I could add to our test suite to make sure the bug gets fixed completely. -- Mike Mike Schilli m...@pe... |
From: Mike S. <m...@pe...> - 2004-10-15 06:28:26
|
---------- Forwarded message ---------- From: Jos I. Boumans <ka...@xs...> To: m...@pe... Cc: ch...@cw... Subject: [PATCH] Log::Log4perl calls non-existing sub Hi, Recent versions of SPOPS use your Log::Log4perl module to provide logging. However, it sometimes (just under SPOPS it seems) manages to call a coderef that isn't there. I've tracked down the problem to Log4perl::Logger around line 690, where a sub is installed in the namespace based on a variable that turns out to be undefined. Below is a patch that fixes this, by checking if the variable has a value first. This makes SPOPS (and our programs on top of it) behave happily again. Regards, -- Jos Boumans "Never ask a man what computer he uses. If it's a Mac, he'll tell you. If it's not, why embarrass him?" - Tom Clancy CPANPLUS http://cpanplus.sf.net *** lib/Log/Log4perl/Logger.pm Mon Aug 16 03:28:11 2004 --- /opt/lib/perl5/site_perl/5.8.3/Log/Log4Perl/Logger.pm Mon Sep 27 14:34:32 2004 *************** *** 688,694 **** # -ms *{__PACKAGE__ . "::is_$lclevel"} = sub { ! $_[0]->{"is_" . $level}->($_[0], "is_" . $lclevel); }; # Add the isXxxEnabled() methods as identical to the is_xxx --- 688,695 ---- # -ms *{__PACKAGE__ . "::is_$lclevel"} = sub { ! $_[0]->{"is_" . $level}->($_[0], "is_" . $lclevel) ! if $_[0]->{"is_".$level}; }; # Add the isXxxEnabled() methods as identical to the is_xxx |
From: Tod H. <th...@gi...> - 2004-10-14 14:59:30
|
My configuration file... # for now we'll just define one level of capture at the top of the hierarchy. # This way we can capture everything to this one log and refine things as we go log4perl.rootLogger = DEBUG, SYNCER log4perl.OpenTrade.XSLTOutputFilter = DEBUG, SYNCER log4perl.OpenTrade.XSLTOutputFilter.detail = FATAL, SYNCER # Basic file-based log log4perl.appender.LOGFILE = Log::Log4perl::Appender::File log4perl.appender.LOGFILE.filename = /var/www/web.thebeast.local/logs/handler.log log4perl.appender.LOGFILE.mode = append log4perl.appender.LOGFILE.layout = PatternLayout log4perl.appender.LOGFILE.layout.ConversionPattern = [%d] %C - %m%n # Make sure each perl thread/child doesn't step on the others via Synching! log4perl.appender.SYNCER = Log::Log4perl::Appender::Synchronized log4perl.appender.SYNCER.appender = LOGFILE Relevant section of the manual Turn off a component Log4perl doesn't only allow you to selectively switch on a category of log messages, you can also use the mechanism to selectively disable logging in certain components whereas logging is kept turned on in higher-level categories. This mechanism comes in handy if you find that while bumping up the logging level of a high-level (i. e. close to root) category, that one component logs more than it should, Here's how it works: ############################################################ # Turn off logging in a lower-level category while keeping # it active in higher-level categories. ############################################################ log4perl.rootLogger=debug, LOGFILE log4perl.logger.deep.down.the.hierarchy = error, LOGFILE # ... Define appenders ... This way, log messages issued from within Deep::Down::The::Hierarchy and below will be logged only if they're error or worse, while in all other system components even debug messages will be logged. The problem is, this is a nice theory but its a fiction that the code actually works this way... I've also discovered that if you set your rootLogger to say 'INFO' and lower levels of the heirarchy to 'DEBUG', you NEVER get anything except 'INFO' level and lower from ANY part of the heirarchy. This seems to be in direct contradiction of the manual and tutorials. What gives guys? This just isn't working as advertised. |
From: <ti...@t-...> - 2004-10-14 08:52:53
|
Изумительные оттенки постельного белья и новые подарки ждут Вас на www.elitpresent.ru |
From: edouard <su...@ub...> - 2004-10-05 14:01:54
|
<HTML> <BODY> <table border=0 width=500> <tr><td> <FONT COLOR="#990066"><B>Международное экспедирование грузов</B></FONT> <p align=justify> <ul> <li>- ИМПОРТ сборных грузов из Европы в Россию, (консолидационные склады - Берлин (Германия), Гориция, Пезаро (Италия), Валенсия (Испания), Коувола ( Финляндия), Рига (Латвия)); <BR><BR> <li>- ЭКСПОРТ сборных грузов в Европу (авто), (консолидационные склады - Рига, Берлин, Верона) <BR><BR> <li>- минимальная партия 100 кг; <BR><BR> <li>- оптимизация маршрутов и стоимости; <BR><BR> <li>- оформление (импорт, экспорт); <BR><BR> <li>- все сопутствующие услуги. </ul> <p align=justify> <FONT COLOR="#990066">Звоните:<BR><BR> <I>ТК "Трансглобал", Москва</I><BR> По вопросам импорта (095)514-61-34<BR> По вопросам экспорта (095)500-61-52 </table> </FONT> </BODY> </HTML> |
From: thaddeus <go...@po...> - 2004-10-01 14:46:40
|
В сентябре 2000 года в Японии были успешно протестированы карбоновые обогреватели с функцией " здоровое тепло", для создания которых было использовано углеродно волокнистое волокно, помещённое в вакуумные трубки. Карбоновый нагревательный элемент это новейшее изобретение XXI века. Из достоинств: производимое тепло может быть направлено непосредственно на человека<br> нагревательный элемент имеет неограниченный срок службы<br> автоматическое отключение при перегреве<br> не сжигает кислород Спецпредложение. Самая низкая цена! Доставка бесплатна !!! Узнайте подробности на нашей странице: http://www.pokupki.net |