📄 fileappendermanager.java
字号:
package org.theblueplanet.annealing;import java.io.File;import java.io.IOException;import org.apache.log4j.Logger;import org.apache.log4j.PatternLayout;import org.apache.log4j.RollingFileAppender;/** * Handles output logging to file. * * @see org.apache.log4j.RollingFileAppender * * @author Charles M間nin * @since November 3, 2001 * @version 1.0 */public class FileAppenderManager { private int currentState; private int desiredState; private Logger logger = Logger.getLogger("org.theblueplanet.annealing"); private RollingFileAppender fileAppender = null; private File outputFile; private PatternLayout layout; /** * Disable logging to file. */ public final static int NO_APPEND = 0; /** * Enable logging to file and append to existing logging file. */ public final static int APPEND = 1; /** * Enable logging to file and overwrite existing logging file. */ public final static int OVERWRITE = 2; /** * Maximum file size after which log file is rolled over. */ public final static long MAXFILESIZE = 1000000L; /** * Maximum number of log files. */ public final static int MAXFILEINDEX = 10; private final static String layoutString = "%d{ABSOLUTE} %m%n"; private final static String appenderName = "FILE_APPENDER"; /** * Constructor for the FileAppenderManager object. */ public FileAppenderManager() { this.layout = new PatternLayout(layoutString); this.currentState = NO_APPEND; outputFile = new File(System.getProperty("user.home"), "JSimul.log"); } /** * Sets the desiredState attribute of the FileAppenderManager object. * * @param desiredState The new desiredState value */ public void setDesiredState(int desiredState) { this.desiredState = desiredState; } /** * Gets the desiredState attribute of the FileAppenderManager object. * * @return The desiredState value */ public int getDesiredState() { return desiredState; } /** * Handles the creation/update/disabling of the file appender. */ public void updateFileAppender() { try { if (desiredState == NO_APPEND && (currentState == APPEND || currentState == OVERWRITE)) { logger.removeAppender(fileAppender); } if (currentState == NO_APPEND && desiredState == APPEND) { fileAppender = new RollingFileAppender(layout, outputFile.getAbsolutePath(), true); setupFileAppender(fileAppender); } else if (currentState == NO_APPEND && desiredState == OVERWRITE) { fileAppender = new RollingFileAppender(layout, outputFile.getAbsolutePath(), false); setupFileAppender(fileAppender); } else if (currentState == APPEND && desiredState == OVERWRITE) { ((RollingFileAppender) logger.getAppender(appenderName)).setAppend(false); } else if (currentState == OVERWRITE && desiredState == APPEND) { ((RollingFileAppender) logger.getAppender(appenderName)).setAppend(true); } currentState = desiredState; } catch (IOException ioe) { ioe.printStackTrace(); } } /** * Initialize the RollingFileAAppender and adds it to the Logger * * @param fileAppender Description of Parameter */ private void setupFileAppender(RollingFileAppender fileAppender) { fileAppender.setMaximumFileSize(MAXFILESIZE); fileAppender.setMaxBackupIndex(MAXFILEINDEX); fileAppender.setName(appenderName); logger.addAppender(fileAppender); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -