Create own custom logger
This example shows how to create and use a custom logger.
Custom loggers are used to group logs by system and keep output structured.
→ Deep dive: [[Logger|Core-API/Logging/Logger]]
Steps
- Register a logger
- Use the logger to log messages
- Keep logs structured and meaningful
Implementation
public class LoggerMethods {
@NotNull
private final Logger logger;
public LoggerMethods() {
// register a logger with a unique name
this.logger = BukkitCoreLibrary.getLoggerHandler().registerLogger("example");
}
public void iterateOnlinePlayers() {
long start = System.currentTimeMillis();
logger.info("Starting iteration");
PlayerHandler playerHandler = BukkitCoreLibrary.getPlayerHandler();
for (BukkitPixelPlayer onlinePlayer : playerHandler.getOnlinePlayers()) {
logger.info("Found: " + onlinePlayer.getName());
}
logger.info("Finished iteration in: " + (System.currentTimeMillis() - start) + "ms");
}
}
Explanation
registerLogger(name)creates a logger for a specific system- Logs are grouped by the given name
.info(...)logs messages with info level
Notes
- Always use meaningful logger names (e.g. system name)
- Avoid spamming logs in loops or frequent tasks
- Use logs to debug and monitor behavior
- Measure execution time for important operations
You are ready!
You now covered all basic systems of the Core API.
From here, you can start building your own features or extend existing systems.