The java.util.logging package includes classes and interfaces that collectively comprise Java's core logging features. This functionality was created with the following goals:
- Problem diagnosis by end users and system administrators
- Problem diagnosis by field service engineers
- Problem diagnosis by the development organization
As you can see, the primary purpose was to enable maintenance of remote software.
The java.util.logging package has two interfaces:
- public interface Filter:
- Purpose: This provides fine-grain control over logged data
- Method: isLoggable(LogRecord record)
- public interface LoggingMXBean:
- Purpose: This is the logging facility's management interface
- Methods:
- getLoggerLevel(String loggerName)
- getLoggerNames()
- getparentLoggerName(String loggerName)
- setLoggerLevel(String loggerName, String levelName)
The following table provides the java.util.logging package classes, along with a brief description regarding what each class provides in respect to logging functionality and management:
Class | Definition | Description |
ConsoleHandler | public class ConsoleHandler extends StreamHandler | Publishes log records to System.err |
ErrorManager | public class ErrorManager extends Object | Used to process errors during logging |
FileHandler | public class FileHandler extends StreamHandler | File logging |
Formatter | public abstract class Formatter extends Object | For formatting LogRecords |
Handler | public abstract class Handler extends Object | Exports Logger messages |
Level | public class Level extends Object implements Serializable | Controls level of logging. The levels, in descending order, are—severe, warning, info, config, fine, finer, and finest |
Logger | public class Logger extends Object | Logs messages |
LoggingPermission | public final class LoggingPermission extends BasicPermission | SecurityManager checks |
LogManager | public class LogManager | For maintaining a shared state between loggers and logging services |
LogRecord | public class LogRecord extends Object implements Serializable | Passed between handlers |
MemoryHandler | public class MemoryHandler extends Handler | Buffer requests in memory |
SimpleFormatter | public class SimpleFormatter extends Formatter | Provides human-readable LogRecord metadata |
SocketHandler | public class SocketHandler extends StreamHandler | Network logging handler |
StreamHandler | public class StreamHandler extends Handler | Stream-based logging handler |
XMLFormatter | public class XMLFormatter extends Formatter | Formats logs into XML |
Next, let's review what changes were made in the modern Java platform.