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 Aug 4, 2012@Alrik94
Error in the PlayerChatEvent it to change to AsyncPlayerChatEvent. Of the new update of CraftBukkit is 1.3.1 - Build 2291 Dev.
-
View User Profile
-
Send Message
Posted Jun 30, 2012Hello, probably to exclude OP from scanning of commands from the black list?
-
View User Profile
-
Send Message
Posted Jun 23, 2012@Alrik94
So, is there no way to have it just notify all that isn't on the blacklist? Other wise i'm creating two lists. (I realize the implications this brings but thats to detailed for me, i'm looking for something simpler. Where anything that isn't on the blacklist is both shown to the notify and recorded. (Into one .log file))
This might be more of a request than a question.
-
View User Profile
-
Send Message
Posted Jun 23, 2012@TrinaryAtom
The people with the cclogger.notify permission are the ones that get notified of a flagged word or command being used.
-
View User Profile
-
Send Message
Posted Jun 16, 2012@Alrik94
So how do do i get it to notify all of the ones that's not on the blacklist?
-
View User Profile
-
Send Message
Posted Jun 12, 2012Re-downloaded! Thanks! This is a Great Plugin!
-
View User Profile
-
Send Message
Posted Jun 6, 2012@JohOply
Added a permission list on the main description. Sorry about that.
-
View User Profile
-
Send Message
Posted Jun 6, 2012Hello!
Can you add a permissions list please ? :)
If it aldready exist, i don't see, sorry
edit : i've find : cclogger.notify
-
View User Profile
-
Send Message
Posted May 30, 2012@Alrik94
is it possible to make it so it can make a folder and in that folder make a chat.log file that is named after the date it was made, and every day a new file is made.
so basically if i want to look up a specific day i can just look up that day, and not have to read through a long file?
-
View User Profile
-
Send Message
Posted May 26, 2012I'd also like the purge. But also maybe on the config add something that says
Thanks!
-
View User Profile
-
Send Message
Posted May 20, 2012@slixxkilla
I could add that, too.
-
View User Profile
-
Send Message
Posted May 19, 2012How bout a purge?
-
View User Profile
-
Send Message
Posted May 19, 2012@lemon42
Thanks for the advice! The plan is to add in-game commands to get information like that on the go. Another plan is to add word and command counting and statistics like that. It would save the time of doing that via Notepad(plus plus). As a server administrator myself, I know how tedious and time consuming opening up your FTP client and downloading one of the logs in CCLogger is just to find out how many times a certain mod has used /ban.
I will also add an option to split the main server.log and have it stored to a separate folder in the main server directory. I will also have it rename the split file according to the date it was split. I currently do this manually after a couple days when the server.log is about 20MB in size.
About the release jumps, I just felt that it needed to get out of Beta stage because the plugin is pretty solid at the moment and I don't see a need for it to say Beta. This current release version (3.0.0) will remain in the 3's until I decide to do a complete re-code and optimization of the entire plugin.
Again, thanks for the advice!
-
View User Profile
-
Send Message
Posted May 19, 2012Hey, cool! Nice idea.
One thing though, can it make a cake? Cause if it doesn't brew coffee, it must do something else food-related. x)
In any case, I like this. Can you access the logs directly in-game? Like at a specific time-date? Or the last 10 messages from a specific player? Or all the commands done by a player in the last 24 hours? I'm pretty sure this would be entirely possible with some nifty coding.
Good work, though I believe you're skipping versions pretty fast here.
Also, I'd suggest always working on it on a separate copy, just in case there are some critical bugs like the one said by TrinaryAtom, so you don't have to wait a whole WEEK to release the bugfix.
Can you add the ability to split files after a specific line ammount or disk space has been reached for one file? One of the problems on popular servers is the server.log being up to 4GB large after a few months! Can you add the configuration option to split it at, let's say, 250 Mb? On 7200RPM drives, this would help A LOT!
Other than that, this plugin has potential! Keep it up! :)
-
View User Profile
-
Send Message
Posted May 18, 2012@Liger_XT5
Most plugins already show the chat in the server.log. The point of this plugin is to keep chat and command related information separate from the server.log.
-
View User Profile
-
Send Message
Posted May 18, 2012Does it also save the info into the server.log file?
Sometimes I monitor my server's console screen when debuging stuff and I like the idea of being able to see what users are using what commands on the fly. I don't mind the server log getting huge, I already of a plugin that archives the logs after a set size.
-
View User Profile
-
Send Message
Posted May 12, 2012@TrinaryAtom
I just got around to fixing this bug! Just took a slight code improvement. I will be uploading a new release sometime next week.
-
View User Profile
-
Send Message
Posted May 10, 2012@Alrik94
I have noticed a huge problem. It ignores more commands than i want it to.
For example:
in the ignore: /memory
it will thus ignore all of the following
This is the same for everything on the list. Useing the word "memory" was purely for an example.
-
View User Profile
-
Send Message
Posted May 10, 2012@Alrik94
I cant wait to incorporate the changes! Hope the next release is here soon!
-
View User Profile
-
Send Message
Posted May 10, 2012@Alrik94
Well i was thinking in a simple manor that it would send a notification to all individuals with the permission to receive such text.
I was thinking (and this is a thought, feel free to do it in any way you want) that it can be setup in the config. So that way server owners can have there own notification messages. Maybe also allow the use for more than one line? (Not sure if that's possible).
An example from the config:
rockPlayer types /invsee rawrplayer
And that would be reflected to the permissioned players as such:
Thanks for taking the time to consider. :) This plugin is such a great addition to any well managed server. All of my mods already have grown to depend upon it. And as such have already replaced the crappy plugin i have previously used.