Logger Framework — Detailed#
classDiagram
direction TB
class LoggerFactory {
+get(name) Logger
}
class Logger {
+name
-level: Level
-appenders: List~Appender~
-filters: List~Filter~
+trace(msg)
+debug(msg)
+info(msg)
+warn(msg)
+error(msg)
+log(level, msg, ctx)
}
class Level {
<<enumeration>>
TRACE
DEBUG
INFO
WARN
ERROR
}
class LogRecord {
+ts
+level
+logger
+thread
+message
+mdc
}
class Appender {
<<interface>>
+append(record)
}
class ConsoleAppender
class FileAppender
class RollingFileAppender
class SyslogAppender
class HttpAppender
class AsyncAppender
class Formatter {
<<interface>>
+format(record) String
}
class TextFormatter
class JsonFormatter
class Filter {
<<interface>>
+accept(record) bool
}
class LevelFilter
class RegexFilter
class Config {
+load(yaml)
+setLevel(logger, level)
}
LoggerFactory --> Logger
Logger *-- Level
Logger --> LogRecord
Logger --> Appender
Logger --> Filter
Appender --> Formatter
Appender <|.. ConsoleAppender
Appender <|.. FileAppender
Appender <|.. RollingFileAppender
Appender <|.. SyslogAppender
Appender <|.. HttpAppender
Appender <|.. AsyncAppender
Formatter <|.. TextFormatter
Formatter <|.. JsonFormatter
Filter <|.. LevelFilter
Filter <|.. RegexFilter
Logger ..> Config
Patterns#
- Chain of Responsibility: log flows through filters.
- Strategy: appender + formatter selection.
- Singleton: LoggerFactory per process.
- Decorator: AsyncAppender wraps another.
Glossary & fundamentals#
Concepts referenced in this design. Each row links to its canonical page; the tag column shows whether it is a high-level (HLD) or low-level (LLD) concept.
| Tag | Concept | What it is | Page |
|---|---|---|---|
LLD |
Creational patterns | Singleton, Factory, Builder, Prototype | creational-patterns |
LLD |
Structural patterns | Adapter, Decorator, Facade, Proxy, Composite | structural-patterns |
LLD |
Behavioural patterns | Strategy, Observer, State, Command, Chain | behavioral-patterns |