2010-04-11 13 views

Respuesta

0

Lo más habitual es poner un archivo log4j.properties en su classpath. El documento log4j le dirá todo lo que necesita saber acerca de tener dos appenders para la consola y un archivo, está en sus ejemplos. En otras palabras, no te molestes con el formato XML menos común y mantente con el formato de propiedades muy común.

29

Sólo tienen más de un appender en su log4j.xml, así:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration debug="true" 
        xmlns:log4j='http://jakarta.apache.org/log4j/'> 

    <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n"/> 
     </layout> 
    </appender> 

    <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender"> 
     <param name="append" value="false"/> 
     <param name="file" value="out/learning.log"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> 
     </layout> 
    </appender> 

    <root> 
     <level value="INFO"/> 
     <appender-ref ref="consoleAppender"/> 
     <appender-ref ref="fileAppender"/> 
    </root> 

</log4j:configuration> 
+1

pregunta tonta, pero ¿debo colocar esto en la misma carpeta que mi carpeta hibernate.cfg? Mi hibernate.cfg.xml está en mi carpeta/src. Estoy usando netbeans, y confundido acerca de classpath lo siento! – Blankman

+0

No pondría nada más que archivos .java en el directorio/src. Cree un nuevo directorio llamado/config y ponga su configuración de Hibernate y log4j en él. A continuación, agregue el directorio/config a su classpath. – duffymo

+1

Supongo que simplemente no entiendo cómo agregar cosas a mi classpath, estoy usando netbeans. – Blankman

6

Aquí es un ejemplo de muestra de log4j.xml utilizado en Hibernate project.Just que colocar este archivo en la ruta de clase y recibirá mensajes de registro en la consola y también en el archivo. Si desea un appender específico, puede cambiar la etiqueta.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" 
    debug="false"> 
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
<layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" /> 
</layout> 
</appender> 
    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender"> 
     <appender-ref ref="CONSOLE" /> 
     <appender-ref ref="FILE" /> 
</appender> 
<appender name="FILE" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="C:/hibernatelog.log"/> 
    <param name="MaxBackupIndex" value="100" /> 
<layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" /> 
</layout> 
</appender> 
    <category name="org.hibernate"> 
     <priority value="DEBUG" /> 
    </category> 
    <category name="java.sql"> 
     <priority value="debug" /> 
    </category> 
    <root> 
     <priority value="INFO" /> 
     <appender-ref ref="ASYNC" /> 
    </root> 
</log4j:configuration> 

Encontré este descriptivo más arriba que uno. Espero que lo ayude.

Cuestiones relacionadas