Stellen Sie anderen ein JAR-Paket zur Verfügung, mit dem Protokolle direkt gedruckt und an einem festen Speicherort gesammelt werden können. In den meisten Fällen wird jetzt die Datei logback.xml verwendet. Wenn diese Datei weiterhin verwendet wird, kann es (natürlich) zu Konflikten kommen , anderer Name), um das Laden von Dateien zu vermeiden, schreiben Sie die Konfiguration wie folgt direkt in Java:
public class SecurityLoggerFactory { private static final String logPath = "/export/Logs/securityLog/securityLog.log"; private static final String logPathHistory = "/export/Logs/securityLog/securityLog.log.%d"; private static Logger logger = null; public static Logger getLogger(){ return logger; } /** * 构造Logger * 设置路径 * 设置滚动方式 */ static { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); //loggerContext.reset(); RollingFileAppender<ILoggingEvent> rollingFileAppender = new RollingFileAppender<ILoggingEvent>(); rollingFileAppender.setContext(loggerContext); rollingFileAppender.setAppend(true); rollingFileAppender.setName("jdSecurityLogAppender"); rollingFileAppender.setFile(logPath); TimeBasedRollingPolicy rollingPolicy = new TimeBasedRollingPolicy<>(); rollingPolicy.setFileNamePattern(logPathHistory); rollingPolicy.setMaxHistory(10); rollingPolicy.setContext(loggerContext); rollingPolicy.setParent(rollingFileAppender); rollingPolicy.start(); rollingFileAppender.setRollingPolicy(rollingPolicy); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setPattern("%msg%n"); encoder.setCharset(Charset.forName("UTF-8")); encoder.setContext(loggerContext); encoder.start(); rollingFileAppender.setEncoder(encoder); rollingFileAppender.start(); ch.qos.logback.classic.Logger rootLogger = loggerContext.getLogger("securityLogLogger"); rootLogger.setLevel(Level.INFO); rootLogger.addAppender(rollingFileAppender); logger = rootLogger; } public static void main(String[] args) { SecurityLoggerFactory.getLogger().info("this is text log."); } }
Der Client kann zum Drucken direkt SecurityLoggerFactory.getLogger().info() aufrufen die entsprechenden Protokolle. Zusätzlich zur Ausgabe des Protokolls auf der Konsole wird das Protokoll auch in die angegebene Datei ausgegeben.
Hinweis:
Der Dateipfad ist der Linux-Pfad. Wenn die Datei bei der Ausführung in Windows nicht generiert werden kann, muss der Windows-Pfad verwendet werden, z. B.: c:/securitylog/securitylog. log
Das obige ist der detaillierte Inhalt vonSo schreiben Sie eine Logback-Konfiguration mit Java-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!