Соглашено с выше, вы должны использовать каркас регистрации. Я предпочитаю использовать такие абстракции, как SLF4J.
В этом примере вы можете использовать log4j внизу. Вот пример файла log4j.properties, который вы можете поместить в путь к классам вашего Java-приложения.
#Rootlogger logs to console and logfile
log4j.rootLogger=INFO,stdout,logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=/tmp/apname.log
log4j.appender.logfile.MaxFileSize=1024KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date [thread] priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d [%t] %p [%c] - %m%n
#=============== CREATE A SEPARATE HANDLER FOR LOGGING SPECIFIC PACKAGES
log4j.appender.MYPACKAGEHANDLER=org.apache.log4j.RollingFileAppender
log4j.appender.MYPACKAGEHANDLER.File=/tmp/mypackage.log
# 1/2 GB
log4j.appender.MYPACKAGEHANDLER.MaxFileSize=512MB
# Keep three backup files.
log4j.appender.MYPACKAGEHANDLER.MaxBackupIndex=3
# Pattern to output: message only
log4j.appender.MYPACKAGEHANDLER.layout=org.apache.log4j.PatternLayout
log4j.appender.MYPACKAGEHANDLER.layout.ConversionPattern=%m%n
log4j.additivity.com.techtrip.mypackage=false
log4j.logger.com.techtrip.mypackage=DEBUG, MYPACKAGEHANDLER
Используя эту конфигурацию, вы создадите два файла журнала с обновляемым приложением, распечатав все выходные данные журнала отладки любого класса, который регистрирует в com.techtrip.mypackage, в /tmp/mypackage.log.
.
Предположим, простой пример класса с Logger и Formatter:
package com.techtrip.mypackage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Foo {
private Logger logger = LoggerFactory.getLogger(Foo.class);
private String someString;
private Foo() {
super();
}
public void setSomeString(String someString) {
if (logger.isDebugEnabled()){
logger.debug(String.format("Setting someString %s", someString));
}
this.someString = someString;
}
}
Это запишет вывод установщика в файл журнала. Выключите его, просто изменив файл свойств. Очень просто.