printStackTrace in Log Datei loggen

Hi,
ich benutze zum loggen log4j. Bei einer Exception möchte ich den stack trace loggen.
Ich dachte mir, das das so geht.

Code:
catch(Exception e) {
    log.error(e.printStackTrace());
}

Leider funktioniert das nicht so. Weis einer von euch wie das geht
 
Hallo!

Einfaches Beispiel:
Java:
/**
 * 
 */
package de.tutorials;

import org.apache.log4j.Logger;

/**
 * @author Tom
 * 
 */
public class LogExample {

    static Logger log = Logger.getLogger(LogExample.class);

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            someMethod();
        } catch (Exception e) {
            if (log.isInfoEnabled()) {
                log.info("Oh oh", e);
            }
        }
    }

    private static void someMethod() throws Exception {
        throw new Exception("Something went wrong...");
    }

}

log4j.properties in den Classpath legen:
Code:
log4j.rootLogger=INFO, logfile

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=log/log4jexample.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
Laufen lassen...

Siehe auch
http://www.torsten-horn.de/techdocs/java-log4j.htm

Gruß Tom
 
Danke Tom für deine Antwort. So hatte ich das glaub ich auch schon probiert und es ging bei mir nicht. Vielleicht ist ja noch ein Fehler in der log4j.properties Datei.
Ich habe aber gerade auch noch eine andere variante gefunden die funktioniert und zwar folgende.

Code:
public class TestLog {
    private final static Log log = LogFactory.getLog(TestLog.class);
        ....
        ....
        ....
        catch(Exception e)  {
             log.error("Text", e.fillInStackTrace());
        }
    }

So wird jetzt der StackTrace in die Datei geloggt.
 
Zurück