LoggerUtil.java

package edu.odu.cs.cs350;

import java.io.IOException;
import java.util.logging.*;

public class LoggerUtil {

    private static Logger logger;

    /**
     * Returns a shared application logger.
     * Configured once, reused everywhere.
     * @return the application logger
     */
    public static Logger getLogger() {
        if (logger != null) return logger;

        logger = Logger.getLogger("ACMClassifierLogger");
        logger.setUseParentHandlers(false); // avoid double-printing

        try {
            // Log directory
            FileHandler fileHandler = new FileHandler(
                "training/build/logs/trainer.log",
                true // append mode
            );

            SimpleFormatter formatter = new SimpleFormatter();
            fileHandler.setFormatter(formatter);

            ConsoleHandler consoleHandler = new ConsoleHandler();
            consoleHandler.setFormatter(formatter);

            logger.addHandler(fileHandler);
            logger.addHandler(consoleHandler);

            logger.setLevel(Level.ALL);

        } catch (IOException e) {
            System.err.println("Failed to initialize logger: " + e.getMessage());
        }

        return logger;
    }
}