You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by "Trond G. Ziarkowski" <tr...@gep-as.com> on 2004/11/04 14:21:18 UTC

Two JVM's logging to the same file

Hi all,

I have a webapp running under Tomcat, that logs to a file. The db used 
in this webapp needs periodic maintenance, and I have some small apps 
that are run from crontab, that manages this. The information from these 
apps are logged to the same file because of the relevance to webapp 
behavior. It seems that while these apps are running, lines written to 
the log are incomplete and I think that my webapp is acting strange when 
these apps are accessing the log file, when requesting pages the new 
pages are not loaded. No errors are showing up in the tomcat logs, nor 
from any of my apps. I have not tried to log to another file yet in 
production env., I've tried in test env., but my test env. doesn't show 
the same symptoms even when logging to same file. Maybe because of the 
load in production env. is much higher?

I'm shooting blanks here, so all input on this subject is much appreciated!

Regards

Trond Gjølstad Ziarkowski



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Re: Two JVM's logging to the same file

Posted by Endre Stølsvik <En...@Stolsvik.com>.
On Thu, 4 Nov 2004, Trond G. Ziarkowski wrote:

| Hi all,
|
| I have a webapp running under Tomcat, that logs to a file. The db used
| in this webapp needs periodic maintenance, and I have some small apps
| that are run from crontab, that manages this. The information from these
| apps are logged to the same file because of the relevance to webapp
| behavior. It seems that while these apps are running, lines written to
| the log are incomplete and I think that my webapp is acting strange when
| these apps are accessing the log file, when requesting pages the new
| pages are not loaded. No errors are showing up in the tomcat logs, nor
| from any of my apps. I have not tried to log to another file yet in
| production env., I've tried in test env., but my test env. doesn't show
| the same symptoms even when logging to same file. Maybe because of the
| load in production env. is much higher?
|
| I'm shooting blanks here, so all input on this subject is much appreciated!

You could make a third JVM "server" that accepts incoming socket appenders
from the two (or more) jvms. This server could dump to a file, like
normal. If this really is necessary, that is..!

Two processes, whatever they are (JVM or ordinary stuff), writing to the
same file, will -always- make trouble, on any OS. This is because writes
can really come "on top of each other", and you'll see this as "blocks
written" in your file. So one line would start, being chopped of in the
middle with another line from the other process, and then the rest of the
line of the first - basically, an utter mess - thus you really need some
external synching, either a "OS lock" of some kind (maybe just a
lock-file, but that would be very slow), or as I suggested above, by using
a server that does the internal locking between the two appenders.

Endre


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org