I ran across this when I wrote my graphing app, and someone else that wrote a log parser said they had to skip those lines as well, so the end result is lost information. High volume servers are going to be a lot more likely to suffer. I know there is a solution, what it is I don't know. The ability to write to a syslog daemon would help, it could buffer the input data and commit to the log file with full locking.
Just a thought, Scott, you already send log info to Declude Console, how about using Declude console or some other helper app as the log writer, keeps the conversation local and should resolve the whole two processes write to the same line issue? Thanks, Chuck Frolick ArgoLink.net -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matt Sent: Monday, February 23, 2004 3:29 PM To: [EMAIL PROTECTED] Subject: Re: [Declude.JunkMail] Feature-itis Ick :) LOGLEVEL MID doesn't look nearly as bad, though there will be the occasional series of line breaks with code appearing in it. I haven't tried parsing the logs with anything but DLAnalyzer though. Matt Colbeck, Andrew wrote: Ahem, like I said, the attachment. Andrew ;) -----Original Message----- From: Colbeck, Andrew Sent: Monday, February 23, 2004 12:58 PM To: '[EMAIL PROTECTED]' Subject: RE: [Declude.JunkMail] Feature-itis Matt, it's not that I particularly want the log files to be neatly ordered instead of interleaved. Although it would be nice, I'm used to identifying the Q... number first and then filtering out the one(s) I want for examination. My bugbear is that individual lines are garbled, the start of new log lines appearing in the middle of other log lines. See the accompanying snippet for a sample. I have not added or removed any CR/LF from that sample. Back in the stone age, I implemented a very similar logging system that was also multi-process, and locking was feared to be too much of a drain. For readability, I wanted the log to not be interleaved, and I also wanted to avoid generating unique names for the logs, so instead of printing the lines instantly, I appended to a string, complete with CR/LF, and at the end of the task, I then implemented a lock, spin, write, unlock routine. Andrew 8( -----Original Message----- From: Matt [mailto:[EMAIL PROTECTED] Sent: Monday, February 23, 2004 11:49 AM To: [EMAIL PROTECTED] Subject: Re: [Declude.JunkMail] Feature-itis Andrew, I just wanted to chime in and say that I of course would love to see non-text base64 stuff thrown out before scanning, and allow us to target only unencoded text strings. The idea of scanning only the decoded text would also be a big processor saver and the primary method, so maybe you would make the decoded choice the BODY filter and have a BODYSOURCE filter for the encoded version. It's important that a filter have the ability to scan MIME attachment descriptors though, so a method to provide for that would be necessary as well. Maybe a BODYSOURCE check would match what a BODY filter does today even with the source of the attachments. Regarding the logging, I'm not sure about the garbling, but streamed log files like Declude's, IMail's and all sorts of HTTP stuff is generally done on demand instead of grouped together. I believe there are definite advantages beyond speed for doing this. It does though lack a unique identifier as a single field which might be nice for log parsing, and maybe that's what's needed here. Something like the spool file name with a "-1" appended to it which increments and appears on each line would do the trick, am I right? That would certainly make things easier to parse. Matt Colbeck, Andrew wrote: Far be it for me to halt progress... Scott, I can't wait to put in the new TESTSFAILED logic. I've wanted exactly this to keep certain multi-answer ip4r tests in check, and Matt is off to a great start in combining tests... I also find that CMDSPACE is very handy and has low false positives. Seamless decoding of BASE64 Subjects (and quoted printables?) is also a good thing(tm). SPF testing and the time-based DOW and HOUR features could be very handy. But for my two cents, I have other priorities: Priority #1 (by far) ==================== I want cleaner logs. This has been discussed in the list before, and I'm pretty sure that Pete and Sandy agreed that they'd seen the behaviour elsewhere, i.e. that multiple processes of writing to the same log file are garbling the text file, and that per se, the garbling wasn't strictly declude's doing. I find that I need to run at loglevel HIGH to get the reporting I need on text filtering, which means bigger log files and presumably more time spent by each instance of declude while it or Windows races to the end of the file to append the text. Without good logging, I'm very much put off my log analysis. Filtering the logs when I get a false positive during my mailserver's "morning rush" is a major pain due to all the overlapping loglines. I can think of a couple of techniques, and I'm a lousy programmer. I don't think you'll need my help there... The simplest thing might be to give us a variable in the global.cfg to turn on file locking, so that we can control whether the performance hit is important in our environment. I realize that would likely add a lot of lines of code to your source, but it could also be trivial to implement inside a function. Sending to a syslog server might also be easy to implement, but the only experience I have with using the logs in a resulting syslog server is with Kiwi, and there, I was using the text log it creates rather than any kind of interface to syslog (I don't know if that's the norm, nor what the IMail users with syslog do with their logging.) Ideally, the logs would be sent directly by declude.exe to an ODBC DSN and the particular SQL database of our choosing, but I know that's really a stretch. Priority #2 =========== I get pecked to death by ducks on the small-weight false positives I get on short text matches that are matching the encoded body of BASE64 attachments. I know that you've mentioned several times before that going beyond the current functionality would require a big leap in going to full MIME decoding, but I hope that my aim is lower: I want to skip matching the BASE64 encoding. Sure, it would also be great to skip decoding MIME attachments that aren't text or HTML (I get false positives on the binary contents of decoded .zip files, too), but that would probably be Priority #3. I know that at least one person on the list relies on declude to match text inside the BASE64 attachments to catch viruses, but perhaps matching that could be toggled with a flag, or make it a new test, e.g. instead of specifying BODY x CONTAINS abcdefghij that this would be appropriate: BASE64CODE x CONTAINS s9Zci6Y4 I haven't thought through all the ways in which a decoder would be useful, so that exact testname might not be appropriate, but hey, it's a start. Thanks for reading this all the way through, Andrew 8) --- [This E-mail was scanned for viruses by Declude Virus (http://www.declude.com)] --- This E-mail came from the Declude.JunkMail mailing list. To unsubscribe, just send an E-mail to [EMAIL PROTECTED], and type "unsubscribe Declude.JunkMail". The archives can be found at http://www.mail-archive.com. 01.orlandocorp.com has no MX or A records [0301].). Action=WARN. 02/23/2004 11:37:05 Q565111ce00b66a85 Filter: Set max weight to 4. n=LOG. 02/23/2004 11:37:05 Q564611cb00b640f5 Filter: Set max weight to 40. 02/23/2004 11:37:05 Q565311cf00b6740b Triggered CONTAINS filter GIBBERISH on original message [weight->0; Origina02/23/2004 11:37:05 Q56402/23/2004 11:37:05 Q563e186400aa1f82 Tests failed [weight=45]: NOLEGITCONTENT=WARN REV02/23/2004 11:37:05 Q563a186300aa10ec Msg failed MAILPOLICE-BULK (This E-mail came from edas53pha.com, a potential spam source listed 02/23/2004 11:37:05 Q5641186500aa2c24 Msg failed COUNTRY (Message failed COUNTRY test (line 29, weight 0)). Action=WARN. 02/23/2004 11:37:05 Q563411c700b6fa28 Triggered CONTAINS filter BENTALLSPAMUNSUB on 0pt [weight->1; 0pt; 02/23/2004 11:37:05 Q562d27660092dff8 Msg failed NOLEGITCONTENT (No c02/23/2004 11:37:05 Q562e11c600b6e1dd Msg failed NOLEGITCONTENT (No content unique to legitimate E-mail detected.). Action02/23/2004 11:37:05 Q565111ce00b66a85 Filter BADCOUNTRYNOREVDNS: Not skipping E-mail due to current weight of -4. 02/23/2004 11:37:05 Q563a186300aa10ec Msg failed AHBL-PROXY-DYNA ("Open Proxy - http://www.ahbl.org/tools/loo02/23/2004 11:37:05 Q5641186500aa2c24 Msg failed SPAMDOMAINS (Spamdomain 'msn.com' found: Address of [EMAIL PROTECTED] sent from invalid adsl-64-163-241-83.dsl.lsan03.pacbell.net.). Action=WARN. 02/23/2004 11:37:06 Q562a27650092d308 Msg failed BENTALLNEGTEXT (Message failed BENTALLNEGTEXT test (line 51, weight 02/23/2004 11:37:06 02/23/2004 11:37:06 Q565111ce00b66a85 Filter: Set max weight to 13. ne 28, weight 0)). Action=WARN. 02/23/2004 11:37:06 Q563a186300aa10ec Msg failed BENTALLIPBL (matched 210.205.0.0/16). Action=WARN. ht of -3. 02/23/2004 11:37:06 Q562d27660092dff8 Msg failed COUNTRY (Message failed COUNTRY test (line 29, weight 0)). Action02/23/2002/23/2004 11:37:06 Q562e11c600b6e1dd Msg failed BENTALLNEGTEXT (Message failed BENTALLNEGTEXT test (line 41, weigh02/23/2004 11:37:06 Q502/23/2004 11:37:06 Q564611cb00b640f5 Filter: Set max weight to 20. ight of -4. 02/23/2004 11:37:06 Q5641186500aa2c24 Msg failed NOABUSE ("Not supporting [EMAIL PROTECTED]"). Action=WARN.0202/23/2004 11:37:06 Q562a27650092d308 R1 Message OK LNEGTEXT (Message failed BENTALLNEGTEXT test (line 48, weight -10)). Action=LOG. 02/23/2004 11:37:06 Q565111ce00b66a85 Filter: Set max02/23/2004 11:302/23/2004 11:37:06 Q563a186300aa10ec Subject: Get med02/23/2004 11:302/23/2004 11:37:06 Q562d27660092dff8 Msg failed BENTALLSPAMHEAD (Message failed BENTALLSPAMHEAD te02/23/2004 11:37:06 Q562a27650092d308 Su02/23/2004 11:37:06 Q562e11c600b6e1dd Subject: Assigned options 02/23/2004 11:37:06 Q563a186300aa10ec From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] IP: 210.205.188.173 ID:02/02/23/2004 11:37:06 Q562d27660092dff8 R1 Message OK ("Blocked - see http://www.spamcop.net/bl.shtml?64.163.241.83"). Action=WARN. 02/23/2004 11:37:06 Q562e11c600b6e1dd From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] IP: 207.61.221.28 ID: ID: W1NJ20AH31563 02/23/2004 11:37:06 Q563a186300aa10ec Tests failed [weight=84]: IPNOT02/23/2004 11:37:06 Q5641186500aa2c24 Msg failed XBL-DYNA ("http://www.spamhaus.org/xbl/xbl.lasso?query=64.163.241.83"). Action=WARN. K=WARN SORBS-HTTP-DYNA=WARN SORBS-DYNA=WARN MAILPOLICE-BULK=WARN AHBL-PROXY-DYNA=WARN BENTALLIPBL=WARN SNIFFER=WARN -- ===================================================== MailPure custom filters for Declude JunkMail Pro. http://www.mailpure.com/software/ ===================================================== --- [This E-mail was scanned for viruses by Declude Virus (http://www.declude.com)] --- This E-mail came from the Declude.JunkMail mailing list. To unsubscribe, just send an E-mail to [EMAIL PROTECTED], and type "unsubscribe Declude.JunkMail". The archives can be found at http://www.mail-archive.com.