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: Jim C. <jc...@di...> - 2003-04-22 06:29:51
|
Mike Schilli wrote: > jc...@di... wrote: > >> But (you knew this was coming), if youre lazy like me, you >> dont want the drudgery of coming up with lots of cate=AD >> gories, and making sure theyre consistent. You note that >> your class hierarchy could serve as a logging category. >> NOW IT CAN.=20 > > > Thanks for your post -- sorry it took so long to respond. Couple of=20 > points: > > * Seems like parts of what your implementation provides are already=20 > available in Log::Log4perl, namely the "stealth loggers" feature. I'm=20 > almost sure you've read these two docs, just in case: I did, but not carefully/critically enough. I didnt like the functions=20 being imported into the calling package, in part cuz I was re-implementing an old logger. =20 My January version was that adaptor class to Log::Log4perl. It also appeared in my cursory=20 review that :easy also didnt give me a whole lot of control w/o embedding the config in=20 the code. > * What your implementation provides on top of that, is the=20 > categorization based on function names and line numbers. I think the=20 > first one is a useful feature. The 2nd one I find somewhat doubtful,=20 > because line numbers change quickly as a program evolves and it's=20 > probably better to control messages with "message filters" if you need=20 > to be able to intervene at such a low level. Line numbers indeed change during development, but the filtering works=20 hierarchically, including on function names and logging level, so line-number churn is=20 less critical than it otherwize would be.=20 Line numbers also settle down, and part of the value of the "log a lot=20 and filter" strategy is that you can enable logging to support debugging long after=20 the module is 'stable', and in production. Line numbers just give an extra level=20 of control if you want to use it. I actually thought of removing the line-numbers at one point, but the=20 'coverage' feature accentuated its value, and theres no downside (assuming that subroutine=20 name was an essential enhancement) Lastly, when I did the 1st wrapping, filters didnt exist. Now that it=20 does, I will get around to looking at it for ideas. > > * I also find the "coverage" feature very useful, we should probably=20 > have that in Log::Log4perl. :-). The depth of coverage is significantly enhanced by subroutine &=20 line-number. Ive often wished for a __SUB__ analogue to __PACKAGE__, had it been available, Id=20 never have gone the AUTOLOAD { caller(1) } route. > >> These are simple import-wrappers on existing Log4perl initialization >> techniques. Since this is my 1st project to use Log::Log4perl, I dont >> have the experience to know why they are not already exposed in >> Log::Log4perl::import(). Perhaps reasons for not doing so will become >> apparent as a result of this experimental feature. > > > Not sure what you're referring to here. The stealth logger docs=20 > mention ways to simplify the init (like easy_init({file =3D> ..}). Let=20 > me know what you mean exactly if I missed anything. The only new thing here is exposure via sub import(), which makes it=20 possible load an initialization file at compile-time. This is 'necessary' cuz=20 optimizer.pm operates at use-time. It can be done in a BEGIN block, but thats easy to=20 overlook, and a use-arg just felt cool. I believe that anything else (ie: INIT or CHECK?) is=20 too late. I was asking why you didnt expose the initialization stuff via import(), and/or whether you might consider doing so. > > All in all, in looks interesting and I'd certainly be interested in a=20 > complete distro to install and play with -- are you planning on=20 > providing that? > I'll work one up. I wanted to grab Log::Log4perl::AutoCategorize (or=20 similar) for my namespace, and get the (alias =3D> Logger) import working. For=20 this, I need your endorsement (ie, I cant take what you dont want to give). Even if this doesnt eventually earn that name, look at optimizer, its=20 damn cool. thanks jimc |
From: Mike S. <msc...@ao...> - 2003-04-22 00:22:25
|
jc...@di... wrote: > But (you knew this was coming), if youre lazy like me, you > dont want the drudgery of coming up with lots of cate=AD > gories, and making sure theyre consistent. You note that > your class hierarchy could serve as a logging category. > NOW IT CAN.=20 Thanks for your post -- sorry it took so long to respond. Couple of point= s: * Seems like parts of what your implementation provides are already=20 available in Log::Log4perl, namely the "stealth loggers" feature. I'm=20 almost sure you've read these two docs, just in case: http://log4perl.sourceforge.net/releases/Log-Log4perl/docs/html/Log/Log4p= erl/FAQ.html#what's_the_easiest_way_to_use_log4perl http://log4perl.sourceforge.net/releases/Log-Log4perl/docs/html/Log/Log4p= erl.html#stealth_loggers It autocategorizes all loggers based on the class a particular logger is=20 in, but at compile time and not at runtime. * What your implementation provides on top of that, is the=20 categorization based on function names and line numbers. I think the=20 first one is a useful feature. The 2nd one I find somewhat doubtful,=20 because line numbers change quickly as a program evolves and it's=20 probably better to control messages with "message filters" if you need=20 to be able to intervene at such a low level. * I also find the "coverage" feature very useful, we should probably=20 have that in Log::Log4perl. > These are simple import-wrappers on existing Log4perl initialization > techniques. Since this is my 1st project to use Log::Log4perl, I dont > have the experience to know why they are not already exposed in > Log::Log4perl::import(). Perhaps reasons for not doing so will become > apparent as a result of this experimental feature. Not sure what you're referring to here. The stealth logger docs mention=20 ways to simplify the init (like easy_init({file =3D> ..}). Let me know=20 what you mean exactly if I missed anything. All in all, in looks interesting and I'd certainly be interested in a=20 complete distro to install and play with -- are you planning on=20 providing that? --=20 -- Mike Mike Schilli log...@pe... |
From: Jim C. <jc...@di...> - 2003-04-17 23:13:33
|
attached tarball has logger/* Im proposing that it become part of the family - ie gets a little piece of the namespace, since its so dependent on the family resources.=20 so, without further ado, heres part of the pod. NAME Log::Log4perl::AutoCat - a simple Log4perl wrapper with some cool features DESCRIPTION This is a wrapper class that uses the some of the really cool Log::Log4perl features in corrupt an lazy ways; AutoCategorization normal use of Log4perl requires that you define a hierar=AD chy of logging categories, and code them into your classes. Because the logging category is orthogonal to severity, and because your categories are essentially unbounded, you can get detailed control over the logging done by your application. But (you knew this was coming), if youre lazy like me, you dont want the drudgery of coming up with lots of cate=AD gories, and making sure theyre consistent. You note that your class hierarchy could serve as a logging category. NOW IT CAN. This package constructs such a $logcat dynamically, using the package name, subroutine name, and line number. Sim=AD plifying somewhat, the code does: 1. uses caller() to construct a category string dynamically. 2. fetches the $logger singleton {$logger =3D get_logger($logc= at)} 3. tests if $logcat was a loggable event {$logger->is_$logcat(= )} 4. record the invocation. 5. do the Log4perl call if 3 tests true Step 4 is done just because its informative; all invoca=AD tions are cataloged in %seenCat, and this can serve as a good 1st estimate of test coverage of your application code. This coverage is summarized at END time; (15:24:24.772) Logger.END.info.106: $Seen Log Events: =3D [ { 'GenWidget.new.debug.34' =3D> 61, 'GenWidget.new.error.96' =3D> 5, 'GwApi.exit.error.328' =3D> 1, 'GwConf.read_file.info.137' =3D> 12, 'Logger.END.info.106' =3D> 1, 'Widget.Match.debug.225' =3D> 61, 'Widget.Match.debug.240' =3D> 61, 'Widget.Match.debug.257' =3D> 1, 'Widget.Match.debug.263' =3D> 543, 'Widget.Match.debug.272' =3D> 55, 'Widget.Match.error.280' =3D> 5, 'Widget.import.info.85' =3D> 1, 'Widget.loadWidgets.debug.118' =3D> 13, 'Widget.loadWidgets.debug.120' =3D> 1, 'TestWidget.crosscheck.info.254' =3D> 1, 'TestWidget.crosscheck.info.267' =3D> 231, 'TestWidget.init.info.42' =3D> 1, 'TestWidget.init.info.67' =3D> 1, 'TestWidget.init.info.68' =3D> 1, 'TestWidget.new_from_xml.debug.128' =3D> 11, 'TestWidget.new_from_xml.debug.143' =3D> 12, 'TestWidget.new_from_xml.debug.165' =3D> 46, 'TestWidget.new_from_xml.debug.197' =3D> 46, 'TestWidget.new_from_xml.error.198' =3D> 3, 'TestWidget.new_from_xml.info.127' =3D> 11, 'TestWidget.new_from_xml.info.173' =3D> 231 } ]; Configuration Given that categories are built on the fly, and that cate=AD gories are reported at application END, you can take the reported categories and roll them back into the log4perl config-file. Other Features Configuration Loading If use Log::Log4perl::AutoCat is given an import list which includes initstr =3D> q{}, or initfile =3D> $filename, the string or file is used to initialize Log::Log4perl. These are simple import-wrappers on existing Log4perl ini=AD tialization techniques. Since this is my 1st project to use Log::Log4perl, I dont have the experience to know why they are not already exposed in Log::Log4perl::import(). Perhaps reasons for not doing so will become apparent as a result of this experimental feature. Aliasing If use Log::Log4perl::AutoCat is given an import list which includes alias =3D> $aliasname, Log::Log4perl::Auto=AD Cat::AUTOLOAD is aliased into package $aliasname. This shorthand is convenient for using class method invocation of the Logger, and is necessary for correct functioning of the features described next. Note: because aliasing is used in optimization phase, it must be imported via use, it cannot be deferred as in require, import. untar and read on.. feedback and patches welcome.. jimc |
From: <bei...@so...> - 2003-04-08 23:51:30
|
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>Cost</title> </head> <body> <p class="MsoNormal" align="center" style="margin-left:12.0pt;text-align:center; text-indent:-12.0pt;mso-char-indent-count:-1.0;mso-char-indent-size:12.0pt; line-height:12.0pt;mso-line-height-rule:exactly;mso-pagination:widow-orphan"><i><span lang="EN-US" style="font-size:12.0pt;mso-bidi-font-size:13.5pt;font-family:Arial; color:#006600">Cost-Effective Solutions for Global</span><span lang="EN-US" style="font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:Arial; color:#006600"> Translations!</span><span lang="EN-US" style="font-size: 14.0pt;mso-bidi-font-size:10.0pt;font-family:Arial;color:white"><br> </span></i><b><span lang="EN-US" style="mso-bidi-font-size:13.5pt;color:#CC3300">Huayi Translation Co., Ltd</span></b></p> <p class="MsoNormal" align="left" style="text-align:left;line-height:12.0pt; mso-line-height-rule:exactly;mso-pagination:widow-orphan"><span lang="EN-US">Dear International Manager:</span><span lang="EN-US" style="font-family:宋体;mso-font-kerning: 0pt"><o:p> </o:p> </span></p> <p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US">The Huayi Translation Co., Ltd. is based in Beijing, China, providing high translation services in most of the world’s commercially significant languages. In addition to considerable in Chinese and English translations, we offer additional services in the following languages-pairs:</span><span lang="EN-US"> <o:p> </o:p> </span></p> <p class="MsoBodyText3" style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US">English-Chinese, Chinese-English, French-Chinese, Chinese-French, German-Chinese, Chinese-German, Japanese-Chinese, Chinese-Japanese, Russian-Chinese, Chinese-Russian, Korean-Chinese, and Chinese-Korean. <o:p> </o:p> </span></p> <p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US">We have proven proficiency in large-scale projects and excellent continuing relationships with recognized multinational corporations such as P&G, the Delaware Corporation, Multiling Corporation and many of China’s governmental organizations and publishing houses. Our service offering extends from technical and marking materials to over 30 published works of literature. We have in-depth experience in the areas of : <o:p> </o:p> </span></p> <table border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse; border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt"> <tr> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Medicine and Medical Instrumentation<o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Mechanics and Materials Engineering<o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Architecture<o:p> </o:p> </span></p> </td> </tr> <tr> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Software & IT<o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Automotive and Railway<o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Cultural and Social Sciences<o:p> </o:p> </span></p> </td> </tr> <tr> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Chemistry and Chemical Engineering<o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Finance and Economics</span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt"><o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Geology and Environment Protection<o:p> </o:p> </span></p> </td> </tr> <tr> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Biology<o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Corporate Management<o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Commerce<o:p> </o:p> </span></p> </td> </tr> <tr> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Law and Legal Documentation<o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt; font-family:"Times New Roman""> </span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt;font-family:Arial">Insurance</span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt;font-family: Arial"><o:p> </o:p> </span></p> </td> <td width="229" valign="top" style="width:171.75pt;border:none;padding:0cm 5.4pt 0cm 5.4pt"> <p align="center" style="text-align:center;line-height:12.0pt;mso-line-height-rule: exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt; font-family:Arial">Education<o:p> </o:p> </span></p> </td> </tr> </table> <p style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt;font-family:"Times New Roman"">With a staff of eight full-time employees and 1,500 staff translators, we are fully able to deal with the most challenging of projects, regardless of size or complexity. A majority of our managers and full-time employees have doctoral or master’s degrees in science, law or other specialties and have considerable knowledge of our client's areas of business activity. </span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt"><o:p> </o:p> </span></p> <p style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman"; mso-font-kerning:1.0pt">We translate both in the traditional way, by human professionals, and by computer-aided translation software. We use industry-standard software such as Star Transit and TermStar. The combination of translation professionals and advanced software technology produces higher quality and elevated productivity.</span><span lang="EN-US" style="font-size: 10.5pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman""> </span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt"><o:p> </o:p> </span></p> <p style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman"">We would greatly appreciate any opportunity to find cost-effective and professional solutions to your company’s translations needs. Our management and staff look forward to hearing from you soon!</span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt"><o:p> </o:p> </span></p> <p style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman"">Dr. Zhen Wei</span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size: 10.0pt"><o:p> </o:p> </span></p> <p style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman"">General Manager<br> Beijing Huayi Translation Co.,Ltd.<br> <br> Tel: 008610-62144551 62144542 Fax: 0086-10-62149508<br> </span><span lang="IT" style="font-size:10.5pt;mso-bidi-font-size:10.0pt; font-family:"Times New Roman";mso-font-kerning:1.0pt;mso-ansi-language:IT">E-mail: <a href="mailto:bj...@16...">bei...@so...</a></span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt"><o:p> </o:p> </span></p> <p style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:13.5pt">Rates: </span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt"> <o:p> </o:p> </span></p> <p style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt">English-Chinese: US$0.045-0.05/English word<br> Chinese-English: US$0.065-0.08/English word<br> French-Chinese:<span style="mso-spacerun: yes"> </span>US$0.055-0.06/French word<br> Chinese-French:<span style="mso-spacerun: yes"> </span>US$0.065-0.08/French word<br> German-Chinese: US$0.055-0.06 per French word<br> Chinese-German: US$0.065-0.08 per French word<br> Japanese-Chinese: US$0.035-0.05 /Japanese Character<br> Chinese-Japanese: US$0.04-0.06 /Japanese Character<br> Japanese-Chinese: US$0.035-0.05/Japanese Character<br> Chinese-Japanese:<span style="mso-spacerun: yes"> </span>US$0.04-0.06/Japanese Character<br> Russian-Chinese: US$0.03-0.035/Chinese Character<br> Chinese-Russian: US$0.04-0.045 /Chinese Character<br> Korean-Chinese:<span style="mso-spacerun: yes"> </span>US$0.03-0.035/Chinese Character<br> <span style="mso-font-kerning:1.0pt">Chinese-Korean:<span style="mso-spacerun: yes"> </span>US$0.040-0.045/ Chinese Character.</span><o:p> </o:p> </span></p> <p style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman"; mso-font-kerning:1.0pt">Please accept my apologies if this message is an intrusion. You can e-mail me at: </span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt;font-family:Arial;mso-font-kerning: 1.0pt"><a href="mailto:to:tra...@so..."><span style="font-family: "Times New Roman"">tra...@so...</span></a></span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman"; mso-font-kerning:1.0pt"> and I will remove your address from our lists.</span><span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:10.0pt"><o:p> </o:p> </span></p> <p class="MsoNormal" style="line-height:12.0pt;mso-line-height-rule:exactly"><span lang="EN-US"> <o:p> </o:p> </span></p> </body> </html> |
From: <log...@pe...> - 2003-04-01 06:24:04
|
Welcome to the Log::Log4perl recipe of the week. Today: ============================================================ Log::Log4perl Recipe of the Week (#21): My new module uses Log4perl -- but what happens if the calling program didn't configure it? ============================================================ If a Perl module uses Log::Log4perl, it will typically rely on the calling program to initialize it. If it is using Log::Log4perl in ":easy" mode, like in package MyMod; use Log::Log4perl qw(:easy); sub foo { DEBUG("In foo"); } 1; and the calling program doesn't initialize Log::Log4perl at all (e.g. because it has no clue that it's available), Log::Log4perl will silently ignore all logging messages. However, if the module is using Log::Log4perl in regular mode like in package MyMod; use Log::Log4perl qw(get_logger); sub foo { my $logger = get_logger(""); $logger->debug("blah"); } 1; and the main program is just using the module like in use MyMode; MyMode::foo(); then Log::Log4perl will also ignore all logging messages but issue a warning like Log4perl: Seems like no initialization happened. Forgot to call init()? (only once!) to remind novice users to not forget to initialize the logging system before using it. However, if you want to suppress this message, just add the ":nowarn" target to the module's "use Log::Log4perl" call: use Log::Log4perl qw(get_logger :nowarn); This will have Log::Log4perl silently ignore all logging statements if no initialization has taken place. If the module wants to figure out if some other program part has already initialized Log::Log4perl, it can do so by calling Log::Log4perl::initialized() which will return a true value in case Log::Log4perl has been initialized and a false value if not. Have fun! Until next week. -- Mike ################################### # Mike Schilli # # log...@pe... # # http://perlmeister.com # # http://log4perl.sourceforge.net # ################################### |
From: CG <nut...@ho...> - 2003-03-29 00:52:05
|
<html> <head> <meta http-equiv="Content-Language" content="pt"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Controle o seu peso com a herbalife</title> </head> <body bgproperties="fixed" background="http://www.nutriloja.com/images/herbalogo.jpg"> <p align="center"> <a href="http://www.nutriloja.com/sf"> <img border="0" src="http://www.nutriloja.com/images/nutri.gif" width="468" height="60"></a></p> <p class="MsoNormal">Gostava de perder peso, centímetros e celulite, à base de produtos naturais?</p> <p class="MsoNormal">Gostava de emagrecer entre 4 a 10 Kgs/mês, sem fazer dietas penosas e continuando a comer tudo aquilo que gosta?</p> <p class="MsoNormal">Gostava de perder a "barriguinha" e os "pneuzinhos" ?</p> <p class="MsoNormal">Gostava de se sentir muito menos cansado e com mais energia ? </p> <p class="MsoNormal">Assista, sem compromisso, à apresentação virtual dos nossos produtos em:</p> <p class="MsoNormal"> <a href="http://www.nutriloja.com/sf" style="color: blue; text-decoration: underline; text-underline: single"> www.nutriloja.com/sf</a></p> <p class="MsoNormal">Atentamente</p> <p class="MsoNormal">Nota: Este email e a pagina Nutriloja.com é da responsabilidade de distribuidores independentes Herbalife.</p> <p class="MsoNormal"> ______________________________________________________________________________</p> <p class="MsoNormal">Se pretender abandonar esta lista de email por favor responda a este email com o assunto REMOVER</p> <p class="MsoNormal"> ______________________________________________________________________________</p> <p class="MsoNormal"> </p> </body> </html> |
From: <msc...@ao...> - 2003-03-20 05:06:40
|
Hi all, Log::Log4perl 0.30 is on its way to CPAN, here's the release notes: 0.30 03/14/2003 * (ms) Added Log4perl custom filter logic and standard filter set * (kg) Added url support to init(), finally documenting it * (kg) Finished implementation of DOMConfigurator allowing xml configs. * (ms) Corrected DateFormat inconsistencies as reported by Roger Perttu Have fun! -- -- Mike ############################ # Mike Schilli # # log...@pe... # # http://perlmeister.com # # log4perl.sourceforge.net # ############################ |
From: <log...@pe...> - 2003-03-18 05:52:36
|
Welcome to the Log::Log4perl recipe of the week. Today: ============================================================ Log::Log4perl Recipe of the Week (#20): I want to suppress certain messages based on their content! ============================================================ Let's assume you've plastered all your functions with Log4perl statements like sub some_func { INFO("Begin of function"); # ... Stuff happens here ... INFO("End of function"); } to issue two log messages, one at the beginning and one at the end of each function. Now you want to suppress the message at the beginning and only keep the one at the end, what can you do? You can't use the category mechanism, because both messages are issued from the same package. Log::Log4perl's custom filters (0.30 or better) provide an interface for the Log4perl user to step in right before a message gets logged and decide if it should be written out or suppressed, based on the message content or other parameters: use Log::Log4perl qw(:easy); Log::Log4perl::init( \ <<'EOT' ); log4perl.logger = INFO, A1 log4perl.appender.A1 = Log::Dispatch::Screen log4perl.appender.A1.layout = \ Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern = %m%n log4perl.filter.M1 = Log::Log4perl::Filter::StringMatch log4perl.filter.M1.StringToMatch = Begin log4perl.filter.M1.AcceptOnMatch = false log4perl.appender.A1.Filter = M1 EOT The last four statements in the configuration above are defining a custom filter "M1" of type "Log::Log4perl::Filter::StringMatch", which comes with Log4perl right out of the box and allows you to define a text pattern to match (as a perl regular expression) and a flag "AcceptOnMatch" indicating if a match is supposed to suppress the message or let it pass through. The last line then assigns this filter to the "A1" appender, which will call it every time it receives a message to be logged and throw all messages out *not* matching the regular expression "Begin". Instead of using the standard "Log::Log4perl::Filter::StringMatch" filter, you can define your own, simply using a perl subroutine: log4perl.filter.ExcludeBegin = sub { !/Begin/ } log4perl.appender.A1.Filter = ExcludeBegin For details on custom filters, check Log::Log4perl::Filter. Have fun! Until next week. -- Mike ################################### # Mike Schilli # # log...@pe... # # http://perlmeister.com # # http://log4perl.sourceforge.net # ################################### |
From: <msc...@ao...> - 2003-03-15 05:32:41
|
Hi all, 0.30 is on the Log4perl home page now -- if it's OK, it'll move on to CPAN in a couple of days ... please give it a try! -- -- Mike ############################ # Mike Schilli # # log...@pe... # # http://perlmeister.com # # log4perl.sourceforge.net # ############################ |
From: Mike S. <msc...@ao...> - 2003-03-13 18:37:53
|
Here's a comment of a happy user of Log4perl's new binary filter logic, posting this with his permission ... -- -- Mike |
From: Roger P. <rog...@ea...> - 2003-03-12 16:47:45
|
msc...@ao... wrote: >In a message dated 3/7/2003 5:53:28 AM Eastern Standard Time, Roger Perttu <rog...@ea...> writes: > > [snip] > > >>However the log4perl docs claims that the standard formats are much >>faster (less string processing?). >> >> > >That's definitely not true, because the code just defines > > } elsif($format eq "ISO8601") { > $format = "yyyy-MM-dd HH:mm:ss,SSS"; > >Where did you see evidence in the documentation that predefined formats are faster? I'd like to correct that if that's in there. > > > Sorry for creating this confusion. It's my typo. I was thinking log4j but writing log4perl. The *log4j* docs claims that the standard formats are much faster. |
From: <msc...@ao...> - 2003-03-09 18:54:51
|
I've thought a bit more about the OK and DECLINED constants and was almost ready to put them in -- but then I realized that I would have to put them into the main: package, because the sub {...} filters are running in main: so people can use subroutines they've defined in main. I don't want Log4perl inject OK to main, though, that's too intrusive, so I'll leave them out unless someone comes up with a smart idea. Regarding renaming the decide() subroutine, the only catchy naming idea I had stressing the binary nature of the call was ok() or approve(). Log4perl would call every custom filter's ok()/approve() method to determine the result of a Boolean filter. On the other hand, at least one developer I know of has already been using the new interface -- any newly developed custom filters would have to be adapted. Using the standard custom filters that ship with Log4perl will be possible without code changes. Votes? -- -- Mike ############################ # Mike Schilli # # log...@pe... # # http://perlmeister.com # # log4perl.sourceforge.net # ############################ |
From: <msc...@ao...> - 2003-03-09 18:27:01
|
In a message dated 3/7/2003 5:53:28 AM Eastern Standard Time, Roger Perttu <rog...@ea...> writes: >http://jakarta.apache.org/log4j/docs/manual.html Search for "ISO 8601 >format" and you will find a sample with the d% option. I'm not >suggesting that the manual is any authority in this matter though :-) . I've documented the difference in Layout/PatternLayout.pm for now and left the implementation like it was. If people want ISO, they can select that easily. >However the log4perl docs claims that the standard formats are much >faster (less string processing?). That's definitely not true, because the code just defines } elsif($format eq "ISO8601") { $format = "yyyy-MM-dd HH:mm:ss,SSS"; Where did you see evidence in the documentation that predefined formats are faster? I'd like to correct that if that's in there. >>2) the java SimpleDateFormat >>(http://java.sun.com/j2se/1.3/docs/api/java/text/SimpleDateFormat.html) >>defines "y" but not "Y". Both log4perl and log4j seem to go back and >>forth between YYYY and yyyy, what's up with that, are they really >>interchangeable? I've thrown out all the 'YYYY' leftovers now. 'yyyy' is the correct way. Let me know if I've overlooked anything ... -- -- Mike ############################ # Mike Schilli # # log...@pe... # # http://perlmeister.com # # log4perl.sourceforge.net # ############################ |
From: Roger P. <rog...@ea...> - 2003-03-07 08:53:45
|
Kevin Goess wrote: >>>In Log4perl the default date format is "YYYY/MM/DD HH:mm::ss". In >>>log4j it seems to be "YYYY-MM-dd HH:mm:ss,SSS" (ISO8601) Why not use >>>the same default format as log4j? At least a comment about this in the >>>docs would be nice. >>> >>> >>Problem with ",SSS" is that it's a standard Java feature but it's only >>available in Perl if Time::HiRes is installed. Regarding slashes vs. >>dashes, I'm flexible, though. Only drawback is that if we change it, >>some people's log files will change which might cause some headache for >>post processors they might have in place. Votes? >> >> > >I'm all for conformity, but > >1) can someone point me to where log4j defines that as the default? I >can't find it. We do match their ISO8601 behavior with "%d{ISO8601}". > http://jakarta.apache.org/log4j/docs/manual.html Search for "ISO 8601 format" and you will find a sample with the d% option. I'm not suggesting that the manual is any authority in this matter though :-) . Haven't actually tested it in log4j. Personally I will use %d{yyyy-MM-dd HH:mm:ss} so I don't care much. However the log4perl docs claims that the standard formats are much faster (less string processing?). > > >2) the java SimpleDateFormat >(http://java.sun.com/j2se/1.3/docs/api/java/text/SimpleDateFormat.html) >defines "y" but not "Y". Both log4perl and log4j seem to go back and >forth between YYYY and yyyy, what's up with that, are they really >interchangeable? > YYYY doesn't work in log4perl. The pod should be updated. > >3) if that is the log4j default, we could add the ,SSS if Time::HiRes is >installed. > >4) if we do change, should note it prominently somewhere I guess > Even if it isn't changed, a note about the difference would be nice. In http://log4perl.sourceforge.net/releases/Log-Log4perl/docs/html/Log/Log4perl/Layout/PatternLayout.html under "description" >The new() method creates a new PatternLayout, specifying its log format. The format string can contain a number of placeholders which will be replaced by the logging engine when it's time to log the message: > > %c Category of the logging event. > %C Fully qualified package (or class) name of the caller > %d Current date in yyyy/MM/dd hh:mm:ss format [snip] > %x The topmost NDC (see below) > %X{key} The entry 'key' of the MDC (see below) > %% A literal percent (%) sign > Note: In log4j, the default format for %d is "yyyy-MM-dd HH:mm:ss,SSS" (ISO8601) >NDC and MDC are explained in Nested Diagnostic Context (NDC) in the Log::Log4perl manpage and Mapped Diagnostic Context (MDC) in the Log::Log4perl manpage. > >Quantify placeholders |
From: Kevin G. <ke...@go...> - 2003-03-07 04:47:25
|
> > In Log4perl the default date format is "YYYY/MM/DD HH:mm::ss". In > > log4j it seems to be "YYYY-MM-dd HH:mm:ss,SSS" (ISO8601) Why not use > > the same default format as log4j? At least a comment about this in the > > docs would be nice. > > Problem with ",SSS" is that it's a standard Java feature but it's only > available in Perl if Time::HiRes is installed. Regarding slashes vs. > dashes, I'm flexible, though. Only drawback is that if we change it, > some people's log files will change which might cause some headache for > post processors they might have in place. Votes? I'm all for conformity, but 1) can someone point me to where log4j defines that as the default? I can't find it. We do match their ISO8601 behavior with "%d{ISO8601}". 2) the java SimpleDateFormat (http://java.sun.com/j2se/1.3/docs/api/java/text/SimpleDateFormat.html) defines "y" but not "Y". Both log4perl and log4j seem to go back and forth between YYYY and yyyy, what's up with that, are they really interchangeable? 3) if that is the log4j default, we could add the ,SSS if Time::HiRes is installed. 4) if we do change, should note it prominently somewhere I guess -- Happy Trails. . . Kevin M. Goess (and Anne and Frank) 904 Carmel Ave. Albany, CA 94706 (510)525-5217 |
From: Mike S. <msc...@ao...> - 2003-03-06 18:48:57
|
MID...@t-... wrote: >As I need the "Custom Filters killer feature" is the 0.30 version stable enough to use ? Or should I implement this functionality myself, and use the 0.29 version ? > > > It's a new feature, and we're going to release it in a week or so. It looks fairly stable, but, of course we can't say it's mature until it has been around for some time and tested by a bunch of people in production on different platforms. We'd certainly apprechiate your help on this :). I'd recommend using the new feature instead of rolling your own, though, if your schedule allows for appropriate testing. As always in log4perl development, we're running extensive regression test suites on all new features to make sure everything we're releasing actually works. -- -- Mike Mike Schilli log...@so... |
From: Mike S. <msc...@ao...> - 2003-03-06 18:41:12
|
rog...@ea... wrote: > Hi all! > > In Log4perl the default date format is "YYYY/MM/DD HH:mm::ss". In > log4j it seems to be "YYYY-MM-dd HH:mm:ss,SSS" (ISO8601) Why not use > the same default format as log4j? At least a comment about this in the > docs would be nice. Problem with ",SSS" is that it's a standard Java feature but it's only available in Perl if Time::HiRes is installed. Regarding slashes vs. dashes, I'm flexible, though. Only drawback is that if we change it, some people's log files will change which might cause some headache for post processors they might have in place. Votes? -- -- Mike Mike Schilli log...@pe... |
From: MID-Entwickler, I. <MID...@t-...> - 2003-03-06 14:15:01
|
As I need the "Custom Filters killer feature" is the 0.30 version stable enough to use ? Or should I implement this functionality myself, and use the 0.29 version ? Best Regards, John Smith |
From: Roger P. <rog...@ea...> - 2003-03-06 12:10:58
|
Hi all! In Log4perl the default date format is "YYYY/MM/DD HH:mm::ss". In log4j it seems to be "YYYY-MM-dd HH:mm:ss,SSS" (ISO8601) Why not use the same default format as log4j? At least a comment about this in the docs would be nice. /Roger P |
From: <log...@pe...> - 2003-03-06 06:44:26
|
Welcome to the Log::Log4perl recipe of the week. Today: ============================================================ Log::Log4perl Recipe of the Week (#19): Log4perl doesn't interpret my backslashes correctly! ============================================================ If you're using Log4perl's feature to specify the configuration as a string in your program (as opposed to a separate configuration file), chances are that you've written it like this: # *** WRONG! *** Log::Log4perl->init( \ <<END_HERE); log4perl.logger = WARN, A1 log4perl.appender.A1 = Log::Dispatch::Screen log4perl.appender.A1.layout = \ Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern = %m%n END_HERE # *** WRONG! *** and you're getting the following error message: Layout not specified for appender A1 at .../Config.pm line 342. What's wrong? The problem is that you're using a here-document with substitution enabled ("<<END_HERE") and that Perl won't interpret backslashes at line-ends as continuation characters but will essentially throw them out. So, in the code above, the layout line will look like log4perl.appender.A1.layout = to Log::Log4perl which causes it to report an error. To interpret the backslash at the end of the line correctly as a line-continuation character, use the non-interpreting mode of the here-document like in # *** RIGHT! *** Log::Log4perl->init( \ <<'END_HERE'); log4perl.logger = WARN, A1 log4perl.appender.A1 = Log::Dispatch::Screen log4perl.appender.A1.layout = \ Log::Log4perl::Layout::PatternLayout log4perl.appender.A1.layout.ConversionPattern = %m%n END_HERE # *** RIGHT! *** (note the single quotes around 'END_HERE') or use "q{...}" instead of a here-document and Perl will treat the backslashes at line-end as intended. Have fun! Until next week. -- Mike ################################### # Mike Schilli # # log...@pe... # # http://perlmeister.com # # http://log4perl.sourceforge.net # ################################### |
From: Mike S. <msc...@ao...> - 2003-03-03 18:43:35
|
Correction on my last post: $Log::Log4perl::Logger::INITIALIZED is the name of the variable, not $Log::Log4perl::INITIALIZED. -- -- Mike Mike Schilli log...@pe... |
From: Mike S. <msc...@ao...> - 2003-03-03 18:41:36
|
rog...@ea... wrote: > Hi! > > I'm just a log4perl user not a developer. In what forum can I make my > stupid user questions? A log4perl-users list would be nice. You can certainly post any kind of user questions here, with the volume being pretty moderate as of now, we're still able to handle all inquiries in one list. > Here is my first question: > In a module, is it possible to fall back to a STDERR printing log if > the parent program using the module haven't configured a log? > > Like this (not Perl): > #try > { $options->{Log} = Log::Log4perl->get_logger($class); > } > #catch > { Log::Log4perl->easy_init({ > level => $DEBUG, > }); > $options->{Log} = Log::Log4perl->get_logger($class); > } > That's a good question. You could check the variable $Log::Log4perl::INITIALIZED and determine if the main program (or some other module) has initialized Log::Log4perl. If not, you could invoke the init/easy_init methods from within the module. However, you need to make sure all used modules handle this situation in the same way -- if several of them called init/easy_init, modules loaded later would override previous Log4perl settings. -- -- Mike Mike Schilli m...@pe... |
From: Roger P. <rog...@ea...> - 2003-03-03 14:44:40
|
Hi! I'm just a log4perl user not a developer. In what forum can I make my stupid user questions? A log4perl-users list would be nice. Here is my first question: In a module, is it possible to fall back to a STDERR printing log if the parent program using the module haven't configured a log? Like this (not Perl): #try { $options->{Log} = Log::Log4perl->get_logger($class); } #catch { Log::Log4perl->easy_init({ level => $DEBUG, }); $options->{Log} = Log::Log4perl->get_logger($class); } Thanks, Roger P |
From: <log...@pe...> - 2003-03-02 19:20:35
|
Welcome to the Log::Log4perl recipe of the week. Today: ============================================================ Log::Log4perl Recipe of the Week (#18): On our server farm, Log::Log4perl configuration files differ slightly from host to host. Can I roll them all into one? ============================================================ You sure can, because Log::Log4perl allows you to specify attribute values dynamically. Let's say that one of your appenders expects the host's IP address as one of its attributes. Now, you could certainly roll out different configuration files for every host and specify the value like log4perl.appender.MyAppender = Log::Dispatch::SomeAppender log4perl.appender.MyAppender.ip = 10.0.0.127 but that's a maintenance nightmare. Instead, you can have Log::Log4perl figure out the IP address at configuration time and set the appender's value correctly: # Set the IP address dynamically log4perl.appender.MyAppender = Log::Dispatch::SomeAppender log4perl.appender.MyAppender.ip = sub { \ use Sys::Hostname; \ use Socket; \ return inet_ntoa(scalar gethostbyname hostname); \ } If Log::Log4perl detects that an attribute value starts with something like "sub {...", it will interpret it as a perl subroutine which is to be executed once at configuration time (not runtime!) and its return value is to be used as the attribute value. This comes in handy for rolling out applications whichs Log::Log4perl configuration files show small host-specific differences, because you can deploy the unmodified application distribution on all instances of the server farm. Have fun! Until next week. -- Mike ################################### # Mike Schilli # # log...@pe... # # http://perlmeister.com # # http://log4perl.sourceforge.net # ################################### |
From: Dave R. <au...@ur...> - 2003-02-27 18:40:50
|
On Thu, 27 Feb 2003, Mike Schilli wrote: > Should be fine, the test suite passes and I'm not aware of any appenders > insisting on the numbers. But, ideally, I'd like > Log::Dispatch::ApacheLog to adhere to the Log::Dispatch spec (or, > alternatively, the Log::Dispatch spec needs to be updated). Like I said, it's a bug in Log::Dispatch::ApacheLog. I should fix it ;) -dave /*======================= House Absolute Consulting www.houseabsolute.com =======================*/ |