Bibliothèque de logging Java inspirée du module logging de Python. Zéro dépendance obligatoire, Java 21+.
- Niveaux :
ALL,DEBUG,INFO,WARNING,ERROR,CRITICAL,OFF - Hiérarchie de loggers avec propagation (noms séparés par
.) - Handlers : Console (couleurs ANSI via UColor), File, RotatingFile, TimedRotatingFile, SizeAndTimeRotatingFile, HTTP, Syslog, SMTP
- Formatters : Pattern (
{time},{level},{message},{mdc.*},{extra.*}, ...) et JSON - Filtres : NameFilter, LevelRangeFilter, RateLimitFilter, lambda custom
- MDC (Mapped Diagnostic Context) thread-local
- Configuration par fichier
.propertiesou YAML, avec résolution${ENV_VAR:-default} - Hot reload de la configuration via
WatchService - Placeholders
{}résolus paresseusement (style SLF4J) - Stack traces avec chaînes
Caused by
<dependency>
<groupId>ulogger</groupId>
<artifactId>ulogger</artifactId>
<version>1.0.0</version>
</dependency>import ulogger.*;
// Configuration one-liner
ULogger.basicConfig();
Logger log = ULogger.getLogger(MyApp.class);
log.info("Application démarrée");
log.debug("Valeur: {}", value);
log.error("Erreur: {}", msg, exception);ULogger.basicConfig(config -> config
.level(Level.DEBUG)
.format("{time} [{level}] {name} - {message}")
.colored(true)
);# logging.properties
root.level=INFO
root.handlers=console,file
handler.console.type=console
handler.console.level=DEBUG
handler.console.format={time} [{level}] {message}
handler.console.colored=true
handler.file.type=file
handler.file.level=INFO
handler.file.filename=/var/log/app.log
handler.file.format={time} [{level}] {name} - {message}
logger.com.myapp.level=DEBUG
logger.com.myapp.propagate=falseULogger.configure("logging.properties");handler.rotating.type=rotating
handler.rotating.filename=/var/log/app.log
handler.rotating.maxBytes=10485760
handler.rotating.backupCount=5
handler.rotating.format={time} [{level}] {message}import ulogger.context.MDC;
MDC.put("requestId", "abc-123");
MDC.put("userId", "42");
log.info("Requête traitée"); // format: {mdc.requestId}
MDC.clear();ulogger/
├── Level, Logger, LogRecord, ULogger
├── format/ PatternFormatter, JsonFormatter
├── handler/ Console, File, Rotating, TimedRotating, HTTP, Syslog, SMTP
├── filter/ NameFilter, LevelRangeFilter, RateLimitFilter
├── config/ PropertiesConfigurator, YamlConfigurator, ConfigWatcher
├── context/ MDC
└── exception/ ULoggerConfigException
mvn test # 69 testsMIT