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 Nov 3, 2012@Alrik94
Thanks for the reply. Is there anyway to get around this easily?
-
View User Profile
-
Send Message
Posted Oct 29, 2012@cheapbeats
It's because admins have the '*' permission. With that '*' permission you get every single permission node that comes with plugins, and that includes the cclogger.exempt permission. Players with this permission node are exempt from all logging by CCLogger.
-
View User Profile
-
Send Message
Posted Oct 29, 2012For some reason, any admins on my server do not get recorded in the global chat log... any reason for this?
-
View User Profile
-
Send Message
Posted Oct 20, 2012@vortechjsbz
Question... what use would signs be with my plugin?
-
View User Profile
-
Send Message
Posted Oct 20, 2012@vortechjsbz
I'll see what I can get in for the next update. Thanks for the suggestions!
-
View User Profile
-
Send Message
Posted Oct 17, 2012Pretty solid so far but I'd like to see perm exemptions to logging, a reload, sign support, and possibly SimpleAlert support. There are two great plugins currently supported but both at best only get half the job done.
-
View User Profile
-
Send Message
Posted Sep 26, 2012No plugin/config-reload? :(
I don't want to use a plugin manager cause most plugins i use have a reload feature ;)
-
View User Profile
-
Send Message
Posted Sep 23, 2012Hello !
Can you remove the "data has been logged to notifyCommands.log" message please ? My chat is filled faster... (sorry if my english is bad)
Thanks :)
-
View User Profile
-
Send Message
Posted Aug 26, 2012@Ako17
Because you used /reload.
NEVER use /reload. If you want to dynamically load a plugin, install the plugin called "Plugman", it allows you to load and unload plugins individually.
That way you can "/plugman load CCLogger", and it'll install CCLogger. If you want to unload it, type /plugman unload CCLogger. :)
-
View User Profile
-
Send Message
Posted Aug 25, 2012Just added the jar to my server, and did a /reload all. Everyone got kicked, and the server was bombarded with some of the heaviest lag I've seen.
Took the .jar out, reloaded again, and the lag started to alleviate. Holy hell it was laggy. Why do you think this happened?
-
View User Profile
-
Send Message
Posted Aug 18, 2012@Alrik94
Yep, exactly. :)
-
View User Profile
-
Send Message
Posted Aug 17, 2012@Pr4w
Do you mean show when players use any command in the console?
-
View User Profile
-
Send Message
Posted Aug 16, 2012Possible to add a function to show all registered commands in console ? It's pretty good for tracking who is doing what. :)
-
View User Profile
-
Send Message
Posted Aug 12, 2012@follet2004
Actually this is a really good idea... At least in my opinion. I've always found it difficult to pinpoint errors in the server.log. If I could find a good way to organize it, it might make an appearance in a future update.
-
View User Profile
-
Send Message
Posted Aug 11, 2012Something i didn't think i would find! Cant wait to try this, thanks for making the plugin. :D
-
View User Profile
-
Send Message
Posted Aug 9, 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.
-
View User Profile
-
Send Message
Posted Aug 9, 2012Thanks mate! :)
-
View User Profile
-
Send Message
Posted Aug 8, 2012Ok so I just uploaded CCLogger 3.1.0. It should be available for download as soon as the Bukkit mods approve it.
-
View User Profile
-
Send Message
Posted Aug 7, 2012@Alrik94
:D
-
View User Profile
-
Send Message
Posted Aug 6, 2012@follet2004
Will be getting to updating to 1.3.1 soon. Been really busy lately :P