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 Mar 16, 2013i dont see why you would need this plugin i mean bukkit does this for you
-
View User Profile
-
Send Message
Posted Mar 11, 2013@killfrog47
Will add option for MySQL support in next release, as well.
-
View User Profile
-
Send Message
Posted Mar 11, 2013@newfization
This is also a good idea. Adding to todo list.
-
View User Profile
-
Send Message
Posted Mar 10, 2013Love the plugin but is there anyway to add certain commands to the chat log? Like /sh and /m?
-
View User Profile
-
Send Message
Posted Mar 9, 2013Hey is there mysql support with this? I want to integrate it on my website.
-
View User Profile
-
Send Message
Posted Mar 9, 2013@Rudker
This is a great idea! Will add to the next release!
-
View User Profile
-
Send Message
Posted Mar 8, 2013Hello,
I love this plugin and i use it for two servers that i am Server Tech on. Could i make a feature suggestion? Perhaps a /ccl clear or /ccl wipe would be good. I say this because when logs build up on a bigger server, you need to download them and then delete them from the server. Currently the only way to do this is stop the server, delete the logs manually, and restart. But when you do that, you lose some players because of restart. It would be nice if we could clear the logs and save space without having to restart the server.
Cheers, Rudker, Capital World Minerealms www.capitalw.net
-
View User Profile
-
Send Message
Posted Mar 8, 2013@JohOply
-
View User Profile
-
Send Message
Posted Mar 8, 2013with database disable :
-
View User Profile
-
Send Message
Posted Mar 8, 2013Love this plugin and I've been using it a lot lately which leads me to this request. During normal chat players talk in global, local, private messages, and shouts. Is there anyway to configure the chat log to include these? They're recorded as commands but having to jump back and forth between the two log files just doesn't do it for me. It'd be great if I could set up the time line as I wished with parts of both logs. Thanks for writing the plugin!
-
View User Profile
-
Send Message
Posted Mar 6, 2013@JohOply @ThisUsernameIsMine
Added an option to disable SQLite in the next update. It should show up whenever it gets approved. I just uploaded it now.
-
View User Profile
-
Send Message
Posted Mar 6, 2013I haven't any crash since i had downgrade to 3.1.2
-
View User Profile
-
Send Message
Posted Mar 4, 2013here is the log just before the bug is
*Klick me*
the error always comes when a player writes something.
Thanks for your Help :)
Bukkit Version 1.4.7-R1.0 Chat Plugin Herochat
-
View User Profile
-
Send Message
Posted Mar 4, 2013@yakimaaa
Do you have a log of the entire error? What you have given me could mean anything.
-
View User Profile
-
Send Message
Posted Mar 4, 2013Hey
thanks for you Plugin. I Love it :)
But i have this problem:
Could not pass event PlayerCommandPreprocessEvent to CCLogger v3.2.2 org.bukkit.event.EventException
I Hope you can Help me :(
-
View User Profile
-
Send Message
Posted Feb 28, 2013@Alrik94
Hey man :)
Hopefully you'll also consider the suggestion i made (about the optional/toggable SQLite mode).
Thanks for the plugin, we love (using) it :)
-
View User Profile
-
Send Message
Posted Feb 28, 2013@JaredMatt
It already logs all commands. The config section you are thinking of blacklists commands from being log. So, any command that is put in that table will not be logged by CCLogger.
@JohOply
@ThisUsernameIsMine
@JohOply
I'm working on a fix. There are some databases that aren't getting removed from memory after server restart. I just need to get the databases to properly close on startup and shutdown.
-
View User Profile
-
Send Message
Posted Feb 28, 2013how can I log all commands? Is there an easy way instead of having to list them all in the config? Can I do "*" or something like that?
-
View User Profile
-
Send Message
Posted Feb 27, 2013@ThisUsernameIsMine
The same problem of you : i use this for a long time, it worked before 3.2 also :/
I'll downgrade this
-
View User Profile
-
Send Message
Posted Feb 27, 2013@JohOply
Same here, and it locks-up/crashes the server :(
- http://dev.bukkit.org/paste/7217/
I've been using CCLogger for a (very) long time and i've never had this with < 3.2.0 versions.
Alrik94, can you please make the use of SQLite optional/configurable in the settings, i would be very grateful :)