The ConsoleHandler
is a built-in logging handler in the java.util.logging
package that writes log messages to the console (System.err
by default).It is commonly used during development and debugging to quickly view log output.
Key Features
- Writes logs to console in real time.
- Can be customized with formatters and log levels.
- Often used alongside or instead of
FileHandler
.
Commonly Used Methods

Simple Program
import java.util.logging.*; public class ConsoleHandlerDemo { public static void main(String[] args) { Logger logger = Logger.getLogger("console.logger"); logger.setUseParentHandlers(false); // Remove default handler ConsoleHandler handler = new ConsoleHandler(); handler.setLevel(Level.INFO); // Only logs INFO and above handler.setFormatter(new SimpleFormatter()); logger.addHandler(handler); logger.setLevel(Level.ALL); // Logger accepts all levels logger.finest("FINEST: Should not appear"); logger.fine("FINE: Should not appear"); logger.info("INFO: ConsoleHandler logs this"); logger.warning("WARNING: ConsoleHandler logs this"); } }
May 24, 2025 10:00:00 AM ConsoleHandlerDemo main
INFO: INFO: ConsoleHandler logs this
May 24, 2025 10:00:00 AM ConsoleHandlerDemo main
WARNING: WARNING: ConsoleHandler logs this
Code language: CSS (css)
Problem Statement
LotusJavaPrince and Mahesh are building a customer login module for a banking app. For real-time feedback during development, they want logs to appear in the console. They will use ConsoleHandler
to print logs related to login attempts and suspicious behavior.
import java.util.logging.*; public class CustomerLoginLogger { private static final Logger loginLogger = Logger.getLogger("bank.login"); public static void main(String[] args) { loginLogger.setUseParentHandlers(false); // Avoid duplicate logging ConsoleHandler consoleHandler = new ConsoleHandler(); consoleHandler.setLevel(Level.ALL); // Show all logs consoleHandler.setFormatter(new SimpleFormatter()); loginLogger.addHandler(consoleHandler); loginLogger.setLevel(Level.ALL); simulateLogin("LotusJavaPrince", true); simulateLogin("Mahesh", false); simulateLogin("UnknownUser", false); } private static void simulateLogin(String user, boolean success) { if (success) { loginLogger.info(user + " logged in successfully."); } else if ("Mahesh".equals(user)) { loginLogger.warning(user + " failed login attempt. Check activity."); } else { loginLogger.severe(user + " is not a recognized user."); } } }
INFO: LotusJavaPrince logged in successfully.
WARNING: Mahesh failed login attempt. Check activity.
SEVERE: UnknownUser is not a recognized user.
Code language: HTTP (http)
ConsoleHandler
is ideal for development-time logging.You can customize level and format of logs.It does not write to files , only the console (System.err).