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 May 26, 2013Hi, Web statistics will be when?
-
View User Profile
-
Send Message
Posted May 25, 2013@dutchy1001
Could you please provide a log file of this error?
-
View User Profile
-
Send Message
Posted May 25, 2013@Alrik94
when using MySQL i think the connection drops after a while and when players login or use commands it gives an error message in the console.
Any chance of looking into this?
If you need a log just let me know
greetz dutchy
-
View User Profile
-
Send Message
Posted May 8, 2013@Marium0505
What exactly are you looking for in terms of HeroChat support? Would it be enough that CCLogger logs what channel/faction the certain chat came from?
-
View User Profile
-
Send Message
Posted May 5, 2013@Marium0505
Yes, the plugin does indeed work with 1.5.2!
-
View User Profile
-
Send Message
Posted May 5, 2013@Alrik94
That would be extremely nice! I may even throw a few money to you if it works as I need it to when you're done with it. :)
Otherwise, the plugin seems great, and I will for sure try it out. One more question before I download, does the plugin work on 1.5.2? :)
-
View User Profile
-
Send Message
Posted May 3, 2013@Marium0505
It doesn't specify what chat channel or faction the chat came from, but it does log it. The plugin is first to use the data from a chat event. It doesn't modify it in any way, it just writes it to the log file/database and moves on to the next chat event that happens.
I could add support for these plugins in order to log chat and specify the channel or faction.
-
View User Profile
-
Send Message
Posted May 3, 2013Does this plugin support chat channel plugins such as HeroChat and LiveChat?
And what about Factions and FactionChat?
-
View User Profile
-
Send Message
Posted Apr 19, 2013@jblanda
You can go into the config.yml and set command logging and player-specific logging to false. You can also turn off all database usage, which will then only log chat to the chat.log file. It is openable in a text editor such as NotePad or Notepad++
-
View User Profile
-
Send Message
Posted Apr 19, 2013Is there a way to just log chat? If so ill use it. And will it go in a .text file?
-
View User Profile
-
Send Message
Posted Apr 3, 2013@LukeHandle
It seems like it would work fine if you point each server to the same database. I don't see any problems with that!
-
View User Profile
-
Send Message
Posted Apr 3, 2013@Alrik94
Would this be able to handle more than one server feeding chat into the database? For example, we have a few servers which have cross server chat, but it is a pain to check the chat on each server and align log times.
SImply, could more than one server send to the same MySQL database?
-
View User Profile
-
Send Message
Posted Mar 31, 2013@Alrik94
Thanks, it would be very, very useful ! Do you think, you can do that for the next update ? :)
Oh and maybe have a different log file for each day. Every day it would be a new file, I think it would be great too !
-
View User Profile
-
Send Message
Posted Mar 28, 2013@mercenaire76
I sure can!
-
View User Profile
-
Send Message
Posted Mar 28, 2013@Alrik94
I think if the death messages will be loged it would be great. 'cause I have many players who think it's funny to kill someone else just for steal a full cobble stuff...
So could you add the death messages to the plugin please ? :)
-
View User Profile
-
Send Message
Posted Mar 27, 2013@tonytony97
It's released now!
-
View User Profile
-
Send Message
Posted Mar 25, 2013Please release mysql update soon! I need ittt :D
-
View User Profile
-
Send Message
Posted Mar 21, 2013@Rudker
For this feature, would you like logs to be archived and labeled accordingly?
-
View User Profile
-
Send Message
Posted Mar 17, 2013Update: I have MySQL working 100%. So whoever wants to integrate this plugin into a PHP website, you will be able to do that soon!
-
View User Profile
-
Send Message
Posted Mar 16, 2013@TheWizardOfOz
It makes it easier to find and read. Bukkit does indeed log for you. But it adds a ton of different things to it as well and as soon as you get a server error, it fills up your file fast.