| | |
| | | * Header, with the fields enclosed by brackets [] replaced by your own identifying |
| | | * information: "Portions Copyright [year] [name of copyright owner]". |
| | | * |
| | | * Portions Copyright 2013-2015 ForgeRock AS. |
| | | * Portions Copyright 2013-2016 ForgeRock AS. |
| | | */ |
| | | |
| | | package org.opends.server.tools.upgrade; |
| | |
| | | import java.io.FileOutputStream; |
| | | import java.io.IOException; |
| | | import java.io.PrintStream; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.logging.FileHandler; |
| | | import java.util.logging.Formatter; |
| | | import java.util.logging.Level; |
| | | import java.util.logging.LogRecord; |
| | | import java.util.logging.Logger; |
| | | |
| | | import org.opends.messages.RuntimeMessages; |
| | | import java.nio.file.Paths; |
| | | |
| | | import com.forgerock.opendj.cli.ClientException; |
| | | import com.forgerock.opendj.cli.ReturnCode; |
| | | |
| | | import static org.opends.messages.ToolMessages.ERR_UPGRADE_INVALID_LOG_FILE; |
| | | import static com.forgerock.opendj.cli.Utils.LINE_SEPARATOR; |
| | | |
| | | /** |
| | | * Creates a historical log about the upgrade. If file does not exist an attempt |
| | |
| | | class UpgradeLog |
| | | { |
| | | private static File logFile; |
| | | private static FileHandler fileHandler; |
| | | static final String UPGRADELOGNAME = "upgrade.log"; |
| | | static final String LOGDIR = "logs"; |
| | | |
| | | /** |
| | | * Creates a new file handler for writing log messages into |
| | | * {@value #UPGRADELOGNAME} file. |
| | | */ |
| | | static void initLogFileHandler() |
| | | static void createLogFile() |
| | | { |
| | | final Logger logger = Logger.getLogger(UpgradeLog.class.getPackage().getName()); |
| | | |
| | | final String SPACE = " "; |
| | | |
| | | if (logFile == null) |
| | | { |
| | | logFile = new File(UpgradeUtils.getInstancePath() + File.separator + Installation.LOGS_PATH_RELATIVE |
| | | + File.separator + UPGRADELOGNAME); |
| | | logFile = Paths.get(UpgradeUtils.getInstancePath(), Installation.LOGS_PATH_RELATIVE, UPGRADELOGNAME).toFile(); |
| | | } |
| | | try |
| | | { |
| | | fileHandler = new FileHandler(logFile.getCanonicalPath(), true); |
| | | } |
| | | catch (IOException e) |
| | | { |
| | | logger.severe(e.getMessage()); |
| | | } |
| | | fileHandler.setFormatter(new Formatter() |
| | | { |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public String format(LogRecord record) |
| | | { |
| | | // Format the log ~like the errors logger. |
| | | StringBuilder sb = new StringBuilder(); |
| | | final SimpleDateFormat dateFormat = |
| | | new SimpleDateFormat("[dd/MMM/yyyy:HH:mm:ss Z]"); |
| | | sb.append(dateFormat.format(record.getMillis())).append(SPACE); |
| | | sb.append("category=UPGRADE").append(SPACE).append("sq=").append( |
| | | record.getSequenceNumber()).append(SPACE).append("severity=") |
| | | .append(record.getLevel().toString().toUpperCase()); |
| | | sb.append(SPACE).append("src=").append(record.getSourceClassName()) |
| | | .append(SPACE).append(record.getSourceMethodName()).append(LINE_SEPARATOR); |
| | | sb.append(SPACE).append("msg=").append(record.getMessage()) |
| | | .append(LINE_SEPARATOR); |
| | | return sb.toString(); |
| | | } |
| | | }); |
| | | logger.setLevel(Level.ALL); |
| | | logger.addHandler(fileHandler); |
| | | |
| | | logger.setUseParentHandlers(false); |
| | | // Log Config info. |
| | | logger.info("**** Upgrade of OpenDJ started ****"); |
| | | logger.info(RuntimeMessages.NOTE_INSTALL_DIRECTORY.get( |
| | | UpgradeUtils.getInstallationPath()).toString()); |
| | | logger.info(RuntimeMessages.NOTE_INSTANCE_DIRECTORY.get( |
| | | UpgradeUtils.getInstancePath()).toString()); |
| | | } |
| | | |
| | | /** |