CCLogger
What is CCLogger?
CCLogger logs player activity on Paper servers. Chat messages, commands, joins, quits, kicks - it all gets recorded to your storage backend of choice.
You can use flat files for simplicity, SQLite if you want queries without external dependencies, or connect to MySQL, MongoDB, or Redis for larger setups. All writes happen async so your server tick rate stays clean.
Features
Logging
Chat - Messages with timestamp, world, and coordinates
Commands - All commands (blacklist supported for /login, /register, etc.)
Connections - Join, quit, kick events
Output options:
- Global log files (chat.log, commands.log)
- Per-player files (players/Steve.log)
- Custom format with placeholders:
%date,%name,%content,%world,%x,%y,%z
Storage
File - Text files, human-readable (no setup)
SQLite - Local database, no config needed (no setup)
MySQL - Shared database for networks (requires MySQL server)
MongoDB - Document store, scales horizontally (requires MongoDB)
Redis - Fast, in-memory, good for high volume (requires Redis)
All backends use async writes and connection pooling.
Privacy
IP logging modes for GDPR compliance:
- disabled - IPs not stored
- truncated - Last octet zeroed (192.168.1.x becomes 192.168.1.0)
- hashed - bcrypt hash with daily rotating salt
- full - Complete IP stored
Commands can be blacklisted with regex patterns. Players with cclogger.exempt permission are excluded from logging.
Alerts
Monitor keywords and commands in real-time:
- Define trigger words (e.g., "hack", "cheat", "exploit")
- Define trigger commands (e.g., "/op", "/gamemode")
- Ops with
cclogger.notifyget in-game alerts - All triggers logged to file
Web Dashboard
CCLogger includes a modern React-based web dashboard (disabled by default):
Dashboard
- Stats overview with log type breakdown
- Log distribution pie chart
- Activity timeline showing recent activity
- Top active players at a glance
Live Timeline
- Real-time activity feed that auto-refreshes
- Pause/resume with keyboard shortcuts
- Filter by log type (Chat, Command, Login, Logout)
- Jump to live button when scrolled
Log Browser
- Full-text search across all logs
- Filter by type, player, date range
- Pagination for large result sets
- Export to JSON or CSV
Player Profiles
- Minecraft avatar display (via Crafatar)
- Activity statistics per player
- Recent activity history
- Click any player name to view profile
REST API
POST /api/auth/token- Get JWT tokenGET /api/logs- Query logs with filtersGET /api/logs/player/{name}- Logs for one playerGET /api/logs/search?q=term- Search log contentGET /api/stats- Statistics
JWT auth with rate limiting.
Requirements
- Paper 1.21+ or Folia
- Java 21+
Commands
/cclogger- Shows help/cclogger reload- Reload config (requirescclogger.reload)/cclogger count <word> [player]- Count word occurrences (requirescclogger.statistics)/cclogger clear- Archive and clear logs (requirescclogger.admin)
Permissions
cclogger.*- Everything (default: OP)cclogger.notify- Receive alerts (default: OP)cclogger.exempt- Not logged (default: false)cclogger.reload- Reload config (default: OP)cclogger.statistics- Count command (default: OP)cclogger.admin- Clear/archive (default: OP)cclogger.web- Web API access (default: OP)
Setup
- Drop JAR in
plugins/ - Restart server
- Edit
plugins/CCLogger/config.yml /cclogger reload
Default config works immediately. Change storage.type if you want something other than SQLite.
Config Example
storage:
type: sqlite # file, sqlite, mysql, mongodb, redis
privacy:
ip-logging: disabled
notifications:
enabled: true
chat-keywords:
- "hack"
- "cheat"
web:
enabled: false
port: 8080
-
View User Profile
-
Send Message
Posted Jan 28, 2012@ctharvey
I'll look into this, as well.
-
View User Profile
-
Send Message
Posted Jan 28, 2012@Crayder
Now THAT is a good idea I can do really quick.
-
View User Profile
-
Send Message
Posted Jan 27, 2012Something to exclusively log [WARNING] or [SEVERE] console errors would be amazing.
-
View User Profile
-
Send Message
Posted Jan 26, 2012@ctharvey
I would like to know this aswell.
-
View User Profile
-
Send Message
Posted Jan 24, 2012Does this affect the server.log at all? Be nice to have that just record server errors.
-
View User Profile
-
Send Message
Posted Jan 21, 2012@colony88
Just released an update that includes this!
-
View User Profile
-
Send Message
Posted Jan 21, 2012I'd like to request something. Make a list of commands that should not be logged maybe?
-
View User Profile
-
Send Message
Posted Jan 21, 2012@Alrik94
Thanks man, installing and checking this out now.
-
View User Profile
-
Send Message
Posted Jan 21, 2012@generilisk
Looks like it is on my end. It won't log which channel was being used, but it will still log the message.
-
View User Profile
-
Send Message
Posted Jan 21, 2012Does this work with the towny chat channels?
-
View User Profile
-
Send Message
Posted Jan 20, 2012@Crayder
I just added the config file. The new release should be up any
minutehour.-
View User Profile
-
Send Message
Posted Jan 20, 2012@Crayder
Yeah, I definitely need more ideas! Thanks! I will start working on a few of them now. But first, the config is the priority.
-
View User Profile
-
Send Message
Posted Jan 20, 2012Awesome, will be adding this to our server on that next release.
Other suggested features (and these are just suggestions to keep you busy, not personal requests):
-
View User Profile
-
Send Message
Posted Jan 20, 2012@Crayder
I will be adding a config file with functionality including what you suggested :)
-
View User Profile
-
Send Message
Posted Jan 20, 2012Gonna be watching this. Would be awesome if you could turn this off globally and only log individual players.