J'écris une application où j'ai besoin d'écrire un journal dans un fichier en utilisant org.Apache.commons.logging
bibliothèque, mais je ne sais pas par où commencer.
Quelqu'un peut-il m'aider?
Merci et meilleures salutations.
Essayez cet exemple, vous avez d'abord besoin de deux fichiers de propriétés comme celui-ci;
commons-logging.properties qui met dans le chemin de classe de votre application. Le contenu de ce fichier devrait ressembler à:
org.Apache.commons.logging.Log=org.Apache.commons.logging.impl.Jdk14Logger
Vous pouvez également utiliser l'enregistreur Log4j en plus de Jdk14Logger.Et avoir besoin d'un deuxième fichier de propriétés personnalisées.Par exemple log-config.properties ressemble à ceci:
# The following creates two handlers
handlers=Java.util.logging.ConsoleHandler, Java.util.logging.FileHandler
# Set the default logging level for the root logger
.level=SEVERE
# log level for the "com.example" package
sample.logging.level=FINE
# Set the default logging level
Java.util.logging.ConsoleHandler.level=ALL
Java.util.logging.FileHandler.level=FINE
# Set the default formatter
Java.util.logging.ConsoleHandler.formatter=Java.util.logging.SimpleFormatter
Java.util.logging.FileHandler.formatter=Java.util.logging.SimpleFormatter
# Specify the location and name of the log file
Java.util.logging.FileHandler.pattern=D:/temp/log/test.log
Ceci est un exemple de classe de test
public class TestLog {
private static Log log = LogFactory.getLog(TestLog.class);
public static void main(String[] args) {
log.info("Testing Info Message.");
if (log.isDebugEnabled()) {
log.debug("Testing Debug Message.");
}
}
}
Il s'agit d'un exemple de structure de package utilisant Eclipse;
Et ajoutez la configuration d'édition de la classe TestLog sous VM arguments aime cela;
-Djava.util.logging.config.file=/D:/dev/workspace/LoggingTest/bin/log-config.properties(your properties file path)
Et exécutez alors vous pouvez trouver votre fichier journal sous D: /temp/log/test.log
J'espère que cela aide ... c'est ainsi que nous avons fait dans notre projet ...
A. Incluez le pot dans votre projet.
B. Définissez log4j.xml pour la définition des enregistreurs quelque chose comme ceci ...
<log4j:configuration xmlns:log4j="http://jakarta.Apache.org/log4j/" debug="false">
<appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="false"/>
<param name="MaxFileSize" value="1048576KB"/>
<param name="MaxBackupIndex" value="3"/>
<layout class="org.Apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<root>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
C. Utilisez l'enregistreur dans la classe:
import org.Apache.commons.logging.Log;
import org.Apache.commons.logging.LogFactory;
Class YourClass{
private static Log log = LogFactory.getLog(YourClass.class);
public void yourMethod(){
log.info("Your Message");
}
}
EDIT: D. Puisque nous avons un environnement JBoss AS, l'application est configurée pour lire log4j.xml comme suit (vous auriez besoin d'une configuration équivalente):
<mbean code="org.jboss.logging.Log4jService"
name="jboss.system:type=Log4jService,service=Logging"
xmbean-dd="resource:xmdesc/Log4jService-xmbean.xml">
<attribute name="ConfigurationURL">resource:jboss-log4j.xml</attribute>
<!-- Set the org.Apache.log4j.helpers.LogLog.setQuiteMode. As of log4j1.2.8
this needs to be set to avoid a possible deadlock on exception at the
appender level. See bug#696819.
-->
<attribute name="Log4jQuietMode">true</attribute>
<!-- How frequently in seconds the ConfigurationURL is checked for changes -->
<attribute name="RefreshPeriod">60</attribute>
</mbean>