Записать файл журнала с помощью org.apache.commons.logging
Я пишу приложение, где мне нужно записать журнал в файл с помощью библиотеки org.apache.commons.logging
, но я не знаю, как начать.
Кто-нибудь может мне помочь?
Спасибо и с наилучшими пожеланиями.
Ответы
Ответ 1
Попробуйте этот образец, сначала вам нужно два файла свойств, которым нравится это:
commons-logging.properties, которые помещаются в ваш путь к классу приложений. Содержимое этого файла должно выглядеть так:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
Вы также можете использовать Log4j logger помимо Jdk14Logger. И требуется второй файл настраиваемых свойств. Например, log-config.properties выглядит следующим образом:
# 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
Это образец тестового класса
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.");
}
}
}
Это пример структуры пакета с использованием eclipse;
![enter image description here]()
И добавьте класс TestLog Edit Configuration в соответствии с аргументами VM:
-Djava.util.logging.config.file=/D:/dev/workspace/LoggingTest/bin/log-config.properties(your properties file path)
![enter image description here]()
И запустите затем файл журнала под D:/temp/log/test.log
Ответ 2
Надеюсь, это поможет... вот как мы это сделали в нашем проекте...
а. Включите банку в свой проект.
В. Определите log4j.xml для определения регистраторов что-то вроде этого...
<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>
С. Использовать регистратор в классе:
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. Поскольку у нас есть среда JBoss AS, поэтому приложение настроено на чтение log4j.xml, как показано ниже (вам понадобится эквивалентная конфигурация):
<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>