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 Dec 5, 2012@xXSshadowXx
Yep, the plugin checks if the file exists every time it logs something.
-
View User Profile
-
Send Message
Posted Dec 4, 2012@Beaupedia
I archive mine by hand every couple of days. You don't have to stop the server either. Just create a folder(I name it with the date) and drag the log files to it. The plugin automatically creates new ones on the fly.
-
View User Profile
-
Send Message
Posted Dec 2, 2012Hi! I really like this plugin,
but i'm wondering if there is a way to record what is said in the Monster IRC channel as well. Then it would be perfect for my situation!
Keep up the good work!!
-
View User Profile
-
Send Message
Posted Nov 26, 2012It doesn't brew coffee.... I'm not using this crap.
-
View User Profile
-
Send Message
Posted Nov 24, 2012@yurikoma
Would love a new log daily! One gigantic log file is difficult.
-
View User Profile
-
Send Message
Posted Nov 22, 2012@Alrik94
a feature i could see that would be useful is more organisation.
as in adding folders for users, and within those folders create another folder with the date on it to contain logs for that date
you could add an option in the config so server owners could define how often they want a new log to be created
some small servers may only want one log per week or month
but many of the big ones would love a day by day log so they can easily see what happened on that day and remove them afterwards if they wish
so depending what is in the config create folders and files to keep them organised
(personally i would love a folder that starts on the 1st of the month 1-12-2012 and inside has all the logs named after the days they are for.
as in for players it would be players/<playername>/12-2012/1-12-2012.log
for Chat it would be Chat/12-2012/1-12-2012.log
for Commands it would be Commands/12-2012/1-12-2012.log
and then on the next month it creates another folder like 1-2013 and so on
well thats my opinion on how it could be more organised anyway.
-
View User Profile
-
Send Message
Posted Nov 22, 2012@Liger_XT5
thats great to hear
@xMopx
as far as i know, to get it to notify you for all commands you will need to list all commands in the command notify list
all commands and chat is recorded in the logs though so you can view those at any time to see what commands people have been using, or what they have been saying.
-
View User Profile
-
Send Message
Posted Nov 20, 2012Is there a way to notify for ALL commands?
-
View User Profile
-
Send Message
Posted Nov 18, 2012@yurikoma
The Op situation is as you said, I and two other people I know in Real Life are Ops. We have a couple other admins that do not have OP powers.
I did put in the exempt before asking, but after checking the perms, either I didn't upload the change or someone else (another admin) was working on the perms and uploaded. Happened before.
Got it working now at least. Thanks.
-
View User Profile
-
Send Message
Posted Nov 16, 2012Feature:
Be cool. It you can log the error too. Like ''Could not pass event bla bla'' it can help a lot of server not it to go to the server.log can be like 20MB or lot of text to read. It would be good if the plugin has a autoclear so it can remove old logs like 1 week old or more, and can be edited in the config.
-
View User Profile
-
Send Message
Posted Nov 15, 2012If anyone has any suggestions on what could be useful for this plugin, that would be great! I'm still working on a better logging system, where chat data can be retrieved in-game on the fly.
@yurikoma
I have updated the description! Thanks for pointing that out!
-
View User Profile
-
Send Message
Posted Nov 15, 2012@Alrik94
lol i see you have said that a few times, on this page even, yet they still ask :P (maybe you should put that permission in the permissions list on this page also don't forget to update for the cclogger.reload permission and command)
btw to the other guy, ops automaticly get all permisisons. so the only person who should have op is the owner, and trusted people that the owner knows in real life.
giving all admins op is generally a bad idea, using permissions you can easily give every other user the permission they need. (also safer for the server)
with my server, i don't even need to be op because my permissions are set up to give exactly what people need (including my owner rank)
but yeah. if you do really want them as ops adding the negative permission to their group permissions should solve the problem
(Look up your permission plugin on how to use negative permissions, i know some of them are different)
-
View User Profile
-
Send Message
Posted Nov 12, 2012@Liger_XT5
If you are using a permission system, you can negate the cclogger.exempt permission by doing:
-
View User Profile
-
Send Message
Posted Nov 12, 2012We've begun using CCLogger a couple days ago, really like, made it easier to look up chat and commands if something comes up. We've noticed that if anyone has OP powers, their chat do not show. There's only one permission here that notifies players of certain commands/chat. Am I missing something?
-
View User Profile
-
Send Message
Posted Nov 6, 2012that is correct ... it makes it easer for me to help ppl that are getting the commands wrong
for example I have IslandWorld on my server and ppl try to use it by typing /is command .. but the command is /island command .. I would not want to see the correct command so i could blacklist /island .. this way whey they try /is command I can let them know what the correct command is
-
View User Profile
-
Send Message
Posted Nov 6, 2012@shadvalentine
So, you want it to notify you of every command in-game except for commands you select to be blacklisted?
-
View User Profile
-
Send Message
Posted Nov 5, 2012meaning showing in game ... i want to see every command and be able to blacklist the ones i dont want to see
-
View User Profile
-
Send Message
Posted Nov 5, 2012@shadvalentine
Do you mean log? Or show in the console? As far as I know, the default server does this already.
-
View User Profile
-
Send Message
Posted Nov 5, 2012Is is posable to have it show anything that starts with / except blacklisted commands?
-
View User Profile
-
Send Message
Posted Nov 3, 2012@cheapbeats
In the place where you put permissions, you can put negative permissions to take away certain permissions from admins.
Like: