Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / August 2007

Tip: Looking for answers? Try searching our database.

log4j and log file lock?

Thread view: 
alejandrina - 15 Aug 2007 22:25 GMT
Hi all,

We have a processor farm (currently 8 machines) running the same
application with different input parameters. We use log4j to record
interesting stuff; we'd like to use a single log file in a networked
disk. We noticed that the 8 machines are trampling on each other as
they write to the log file (symptoms are nulls embedded in messages,
incomplete messages, duplicate messages....). I have assumed that this
is because access to the log file is not "locked" (using something
like Java's FileLock API).

Is there a solution to this problem? Thread syncronization is not an
option, of course, as these are different computers.

Thanks for any ideas,

Alejandrina
Owen Jacobson - 15 Aug 2007 23:20 GMT
> Hi all,
>
[quoted text clipped - 13 lines]
>
> Alejandrina

Use the syslog appender and let a single network-available syslog
instance handle the actual log files.

-Owen
Manish Pandit - 16 Aug 2007 03:04 GMT
> Hi all,
>
[quoted text clipped - 13 lines]
>
> Alejandrina

You can also look at the SocketAppender/SimpleSocketServer (It is in
the same package as the Syslog appender mentioned by Owen.)

http://logging.apache.org/log4j/docs/api/org/apache/log4j/net/package-summary.html

I've seen SocketAppender+SimpleSocketServer being used at several
instances which are similar to your setup. One thing to be careful
about is the message rate; which, if faster than the network
(connection to the server), will cause the client to block.

-cheers,
Manish
Lew - 16 Aug 2007 04:39 GMT
> You can also look at the SocketAppender/SimpleSocketServer (It is in
> the same package as the Syslog appender mentioned by Owen.)
[quoted text clipped - 5 lines]
> about is the message rate; which, if faster than the network
> (connection to the server), will cause the client to block.

If you are at a higher log level, say, WARN, is it safe to say that
lower-level (DEBUG, INFO) calls will not risk blocking, nor otherwise have any
effect on the socket?  I should think so.

Regardless of destination or concurrency issues, the trick of what to log, at
what level, is both important and fairly devoid of best practices lore.

Few sources even acknowledge the importance of logging, though nearly every
professional programmer practices it.  Fewer lay out reasonable strategies, or
even discuss the importance of having a logging strategy.  It's arguably more
important to have a rigorous logging discipline at all than to worry about
which one is best.

In normal production scenarios there should be relatively few log messages, so
stress on the socket should be low.  Canonically, production runs at WARN or
ERROR, and there should be nearly none of those.  Even INFO messages should be
sparse - verbosity is for DEBUG.  If you've cranked up your log level to
DEBUG, it's because you've got bigger concerns than a little blocking.

Signature

Lew

alejandrina - 16 Aug 2007 15:10 GMT
> > Hi all,
>
[quoted text clipped - 26 lines]
> -cheers,
> Manish

Yes, I think the SocketAppender is the way to go! Thanks for the tip.
And I agree 100% with Lew that the messages should be sparse. If you
have to debug, then turn off the socket and go back to the console or
the file.
alejandrina - 17 Aug 2007 14:18 GMT
> > Hi all,
>
[quoted text clipped - 26 lines]
> -cheers,
> Manish

Thanks Manish, I was able to set up the socket logging very easily and
works as advertised.

Alejandrina


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.