⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileappendermanager.java

📁 模拟退火是一种启发式算法
💻 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 + -