Master the Java Logging API including Logger, LogManager, logging levels, handlers, formatters, and logging configuration for the OCP 21 exam.
Table of Contents
1. Logging Overview
The Java Logging API (java.util.logging) provides a framework for logging application messages.
1.1 Key Components
- Logger: Used to log messages
- LogManager: Manages loggers and configuration
- Handler: Processes log records (console, file, etc.)
- Formatter: Formats log records for output
- Level: Severity level of log messages
2. Logger Class
2.1 Creating and Using Logger
Example:
import java.util.logging.Logger;
// Get logger (usually use class name)
Logger logger = Logger.getLogger(MyClass.class.getName());
// Logging messages
logger.severe("Severe message");
logger.warning("Warning message");
logger.info("Info message");
logger.config("Config message");
logger.fine("Fine message");
logger.finer("Finer message");
logger.finest("Finest message");
// Generic log method
logger.log(Level.INFO, "Message with level");
// Log with exception
logger.log(Level.SEVERE, "Error occurred", exception);
3. Logging Levels
Logging levels define the severity of log messages, ordered from highest to lowest:
3.1 Level Hierarchy
SEVERE- Highest level, serious failuresWARNING- Warning messagesINFO- Informational messagesCONFIG- Configuration messagesFINE- Detailed tracingFINER- More detailed tracingFINEST- Most detailed tracing
Example:
import java.util.logging.Level;
import java.util.logging.Logger;
Logger logger = Logger.getLogger(MyClass.class.getName());
// Set level
logger.setLevel(Level.INFO);
// Check if level is loggable
if (logger.isLoggable(Level.FINE)) {
logger.fine("Expensive operation");
}
// Get level
Level currentLevel = logger.getLevel();
4. Handlers and Formatters
4.1 Common Handlers
Example:
import java.util.logging.*;
import java.io.IOException;
Logger logger = Logger.getLogger(MyClass.class.getName());
// Console handler (default)
ConsoleHandler consoleHandler = new ConsoleHandler();
logger.addHandler(consoleHandler);
// File handler
try {
FileHandler fileHandler = new FileHandler("app.log");
logger.addHandler(fileHandler);
} catch (IOException e) {
e.printStackTrace();
}
// Set handler level
consoleHandler.setLevel(Level.WARNING);
// Set formatter
consoleHandler.setFormatter(new SimpleFormatter());
4.2 Formatters
Example:
import java.util.logging.*;
// SimpleFormatter - human-readable format
SimpleFormatter simpleFormatter = new SimpleFormatter();
handler.setFormatter(simpleFormatter);
// XMLFormatter - XML format
XMLFormatter xmlFormatter = new XMLFormatter();
handler.setFormatter(xmlFormatter);
// Custom formatter
class CustomFormatter extends Formatter {
public String format(LogRecord record) {
return record.getLevel() + ": " + record.getMessage() + "\n";
}
}
5. Logging Configuration
5.1 Configuration File
Example:
# logging.properties
# Global logging level
.level=INFO
# Logger-specific levels
com.example.mymodule.level=FINE
# Handler configuration
java.util.logging.ConsoleHandler.level=INFO
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
# File handler
java.util.logging.FileHandler.pattern=app.log
java.util.logging.FileHandler.level=WARNING
6. Exam Key Points
Critical Concepts for OCP 21 Exam:
- Logger: Used to log messages
- getLogger(): Get or create logger instance
- Logging Levels: SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST
- setLevel(): Set logger or handler level
- isLoggable(): Check if level is loggable
- Handler: Processes log records
- ConsoleHandler: Outputs to console
- FileHandler: Outputs to file
- Formatter: Formats log records
- SimpleFormatter: Human-readable format
- XMLFormatter: XML format
- LogManager: Manages logging configuration
0 Comments