Solución:
La salida parece tener el formato predeterminado que emitiría el marco de registro estándar de Java (JUL).
Entonces, hay dos posibilidades (que me vienen a la mente):
- Tu código importa
java.util.logging.Logger
, en vez deorg.apache.log4j.Logger
. - Existe una biblioteca de algún tipo, en su classpath, que intercepta las llamadas Log4J y las convierte en llamadas JUL.
Yo tenía el mismo problema que tú. Se creó el archivo, pero sin ningún registro en él, solo en la consola. Y fue debido a dependencias incorrectas en el proyecto maven en mi caso.
Mi log4j.properties
archivo era:
# Root logger option
log4j.rootLogger=DEBUG, file
# Direct log messages to a log file
# configuration to print into file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=10
# Define the layout for file appender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=[%t] %-5p %c %x - %m%n
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Set the name of the file
log4j.appender.file.File=C:\log\logging.log
# Set the append to false, overwrite
log4j.appender.file.Append=false
Y usé en POM:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
Sí, creó para mí un archivo donde lo necesitaba, pero los registros estaban en la consola. Luego lo cambié a otra dependencia como:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
Y finalmente lo logré en un archivo en lugar de en una consola. Incluso sin ningún comando explícito como PropertyConfigurator.configure()
.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)