A lightweight Java logging library that adds emoji themes and optional ANSI colors to log messages. Use directly in code or integrate via a Logback appender.
- Multiple emoji themes for common log levels
- Optional ANSI color output for consoles
- Works with or without Logback
- Per-logger and global configuration
- Extra markers: SUCCESS and COMPLETED
Add the dependency to your build.
Maven:
<dependency>
<groupId>io.github.h3yzack</groupId>
<artifactId>vivid4jlog</artifactId>
<version>${latest.version}</version>
</dependency>Gradle:
implementation 'io.github.h3yzack:vivid4jlog:${latest.version}'import io.github.h3yzack.vivid4jlog.Vivid4jLogger;
public class MyApp {
private static final Vivid4jLogger log = Vivid4jLogger.create(MyApp.class);
public static void main(String[] args) {
log.info("Starting up");
log.success("Connected");
log.warn("Low disk space");
log.error("Failed to write file");
}
}Choose one or mix as needed.
import io.github.h3yzack.vivid4jlog.Vivid4jLogger;
import io.github.h3yzack.vivid4jlog.theme.EmojiTheme;
Vivid4jLogger log = Vivid4jLogger.create(MyService.class, EmojiTheme.TECH);
log.getConfig().setColorEnabled(true); // enable colors for this logger
log.setTheme(EmojiTheme.GAMING); // switch theme at runtimeCreate vivid4jlog.properties on the classpath:
vivid4jlog.theme=TECH
vivid4jlog.color.enabled=true
vivid4jlog.custom.prefix=[APP]
vivid4jlog.custom.suffix=Wrap your base appenders with the Vivid4jLog appender.
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>300MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- Themed wrappers -->
<appender name="THEMED_CONSOLE" class="io.github.h3yzack.vivid4jlog.appender.Vivid4jLogAppender">
<theme>TECH</theme>
<colorEnabled>true</colorEnabled>
<appender-ref ref="CONSOLE"/>
</appender>
<appender name="THEMED_FILE" class="io.github.h3yzack.vivid4jlog.appender.Vivid4jLogAppender">
<theme>CLASSIC</theme>
<colorEnabled>false</colorEnabled>
<appender-ref ref="FILE"/>
</appender>
<!-- Apply to selected packages -->
<logger name="com.myapp" level="DEBUG" additivity="false">
<appender-ref ref="THEMED_CONSOLE"/>
<appender-ref ref="THEMED_FILE"/>
</logger>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>Built-in themes and their emojis per level:
| Theme | TRACE | DEBUG | INFO | WARN | ERROR | SUCCESS | COMPLETED |
|---|---|---|---|---|---|---|---|
| CLASSIC | 🔍 | 🐛 | ✅ | ❌ | 🎉 | ✨ | |
| TECH | 🔬 | ⚙️ | 💡 | ⚡ | 🔥 | 🚀 | ⭐ |
| GAMING | 🎯 | 🎮 | 🏆 | ⚔️ | 💀 | 🎊 | 👑 |
| NATURE | 🌱 | 🍃 | 🌸 | 🌰 | 🌋 | 🌺 | 🌈 |
| MINIMAL | · | - | ✓ | ! | ✗ | ✓ | ✓ |
| COLORFUL | 🔮 | 🎨 | 💙 | 💛 | 💥 | 💚 | 💜 |
When colors are enabled:
- TRACE: bright black
- DEBUG: cyan
- INFO: blue
- WARN: yellow
- ERROR: red
- SUCCESS: green
- COMPLETED: purple
- Java 17+
- SLF4J 2.0+
- Logback 1.4+ (only for appender integration)
MIT — see LICENSE.
@h3yzack
Small, focused improvements are welcome. Please open a PR.