This is where I knew your name from... ;o)

Yes you would need to be careful about introducing infinite looping.  I
actually ran into this with JMS logging (JMS consumer tries to log errors
which go to JMS which it then tries to handle, etc).  This is not only
possible while overriding sysout and syserr (although much easier).  Just
need to be careful designing a logging set-up.

For this in particular, you would need to implement an
org.apache.log4j.spi.ErrorHandler implementation to handle the situation
(org.apache.log4j.helpers.OnlyOnceErrorHandler _might_ suffice).

HTH


    |-----Original Message-----
    |From: Max Rydahl Andersen [mailto:[EMAIL PROTECTED]
    |Sent: Monday, March 17, 2003 10:16 AM
    |To: Log4J Users List
    |Subject: Re: How to redirect System.err and System.out to log4j?
    |
    |
    |And what happens if log4j fails to log something to the logger ?
    |Will the suggested solution avoid going into an infinite 
    |loop when log4j
    |tries to log the error to System.err ?
    |
    |/max
    |
    |----- Original Message -----
    |From: "Cakalic, James" <[EMAIL PROTECTED]>
    |To: "Log4J Users List" <[EMAIL PROTECTED]>
    |Sent: Monday, March 17, 2003 2:01 PM
    |Subject: RE: How to redirect System.err and System.out to log4j?
    |
    |
    |Try the LoggingOutputStream class in the contribs/JimMoore 
    |folder of the
    |log4j release. I've had pretty good success with it. Once 
    |you have it in
    |your project (you'll probably want to put it in one of 
    |your util or helper
    |packages) usage is simple, as described in the javadoc:
    |
    |// make sure everything sent to System.err is logged
    |Logger err = Logger.getLogger("SystemErr");
    |Priority warn = Priority.WARN;
    |System.setErr(new PrintStream(new LoggingOutputStream(err, 
    |warn), true));
    |
    |// make sure everything sent to System.out is logged
    |Logger out = Logger.getLogger("SystemOut");
    |Priority info = Priority.INFO;
    |System.setOut(new PrintStream(new LoggingOutputStream(out, 
    |info), true));
    |
    |Logging events are recorded using the appenders and 
    |layouts defined in your
    |configuration. The category/logger that will appear is 
    |SystemErr for
    |anything written to System.err and SystemOut for whatever 
    |is written to
    |System.out.
    |
    |Best regards,
    |Jim Cakalic
    |
    |-----Original Message-----
    |From: Steve Ebersole [mailto:[EMAIL PROTECTED]
    |Sent: Friday, March 14, 2003 9:52 PM
    |To: Log4J Users List
    |Subject: Re: How to redirect System.err and System.out to log4j?
    |
    |
    |You would need to wrap a Logger in a PrintStream, and then do:
    |
    |System.out = new MyPrintStreamWrappedLogger();
    |
    |HTH
    |
    |
    |----- Original Message -----
    |From: "Zsolt Koppany" <[EMAIL PROTECTED]>
    |To: "Log4j-User" <[EMAIL PROTECTED]>
    |Sent: Friday, March 14, 2003 3:49 PM
    |Subject: How to redirect System.err and System.out to log4j?
    |
    |
    |> Hi,
    |>
    |>
    |> how can I redirect System.err and System.out to a log4j 
    |appender? In an
    |> existing application there are System.out.println() 
    |instructions that I
    |> would like to see in the log4j file. How can I do that?
    |>
    |>
    |> Zsolt
    |>
    |>
    |>
    |> 
    |-----------------------------------------------------------
    |----------
    |> To unsubscribe, e-mail: [EMAIL PROTECTED]
    |> For additional commands, e-mail: 
    |[EMAIL PROTECTED]
    |>
    |
    |
    |-----------------------------------------------------------
    |----------
    |To unsubscribe, e-mail: [EMAIL PROTECTED]
    |For additional commands, e-mail: [EMAIL PROTECTED]
    |
    |
    |Confidentiality Warning:  This e-mail contains information 
    |intended only for
    |the use of the individual or entity named above.  If the 
    |reader of this
    |e-mail is not the intended recipient or the employee or 
    |agent responsible
    |for delivering it to the intended recipient, any 
    |dissemination, publication
    |or copying of this e-mail is strictly prohibited. The 
    |sender does not accept
    |any responsibility for any loss, disruption or damage to 
    |your data or
    |computer system that may occur while using data contained 
    |in, or transmitted
    |with, this e-mail.   If you have received this e-mail in 
    |error, please
    |immediately notify us by return e-mail.  Thank you.
    |
    |
    |-----------------------------------------------------------
    |----------
    |To unsubscribe, e-mail: [EMAIL PROTECTED]
    |For additional commands, e-mail: [EMAIL PROTECTED]
    |
    |
    |
    |-----------------------------------------------------------
    |----------
    |To unsubscribe, e-mail: [EMAIL PROTECTED]
    |For additional commands, e-mail: [EMAIL PROTECTED]
    |

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to