Kopieren Sie den Codecode wie folgt:
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
öffentliche Klasse LoggerUtils {
/**
* Erstellen Sie eine Logger-Instanz
*
* @paramclazz Ereignisprotokoll-Vorkommensklasse
* @paramifConsole, ob an die Konsole ausgegeben werden soll
* @paramifFile, ob in eine Datei ausgegeben werden soll
* @paramlogFile-Protokolldateiadresse (verwenden Sie „/“, um den Pfad zu trennen)
* @paramifLocate, ob der Speicherort des Ereignisprotokolls gesucht werden soll (Klasse. Methodenzeile)
* @returnLogger
*/
öffentlicher statischer Logger getLogger(Class<?> clazz, boolean ifConsole, boolean ifFile, String logFile, boolean ifLocate) {
if(ifConsole == false && ifFile == false) return null;
if(ifFile == true && logFile.trim().length() < 1) return null;
String-Konvertierungsmuster;
if(ifLocate == true) {
// Das Format des Protokollinhalts lautet wie folgt: 2014-03-11 01:34:45.572 [DEBUG] com.aliyun.qa.utils.LoggerUtilsTest.main(Line:15): DEBUG-Protokoll testen
ConversionPattern = "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] %c.%M(Line:%L): %m %n";
} anders {
//Das Format des Protokollinhalts lautet wie folgt: 2014-03-11 01:34:45.572 [DEBUG]: Testen Sie das DEBUG-Protokoll
ConversionPattern = "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] : %m %n";
}
PatternLayout-Layout = new PatternLayout();
layout.setConversionPattern(conversionPattern);
Logger logger = Logger.getLogger(clazz);
logger.removeAllAppenders();
logger.setLevel(Level.DEBUG);
logger.setAdditivity(false);//Logger wird nicht im Appender des übergeordneten Loggers ausgegeben, der Standardwert ist true
if(ifConsole == true) {// Ausgabe an die Konsole protokollieren
ConsoleAppender consoleAppender = new ConsoleAppender();
consoleAppender.setLayout(layout);
consoleAppender.setThreshold(Level.INFO);//ConsoleAppender-Protokollebene ist DEBUG
consoleAppender.activateOptions();
logger.addAppender(consoleAppender);
}
if(ifFile == true) {//Ausgabe in Datei protokollieren
FileAppender fileAppender = new FileAppender();
fileAppender.setLayout(layout);
fileAppender.setFile(logFile);
fileAppender.setEncoding("UTF-8");
fileAppender.setAppend(true);
fileAppender.setThreshold(Level.INFO);//FileAppender-Protokollebene ist INFO
fileAppender.activateOptions();
logger.addAppender(fileAppender);
}
Rücklauf-Logger;
}
/**
* Erstellen Sie eine Logger-Instanz (nur Ausgabe an die Konsole)
*
* @paramclazz Ereignisprotokoll-Vorkommensklasse
* @paramifLocate, ob der Speicherort des Ereignisprotokolls gesucht werden soll (Klasse. Methodenzeile)
* @returnLogger
*/
öffentlicher statischer Logger getLogger(Class<?> clazz, boolean ifLocate) {
return getLogger(clazz, true, false, null, ifLocate);
}
/**
* Logger-Instanz erstellen (nur Ausgabe in Datei)
*
* @paramclazz Ereignisprotokoll-Vorkommensklasse
* @paramlogFile-Protokolldateiadresse (verwenden Sie „/“, um den Pfad zu trennen)
* @paramifLocate, ob der Speicherort des Ereignisprotokolls gesucht werden soll (Klasse. Methodenzeile)
* @returnLogger
*/
öffentlicher statischer Logger getLogger(Class<?> clazz, String logFile, boolean ifLocate) {
return getLogger(clazz, false, true, logFile, ifLocate);
}
}