Farmstead Mods
RU

Logging

Per-subsystem normal/debug switches, categories and logs/debug.log.

On this page

Examples#

Turn on a detailed trace for teleportation only#

A warp is broken, but you do not want to flood latest.log with the whole mod.

/neoe reload

In config.json (or main.json in split mode) set logging.categories.teleportation.debug to true, then reload. The category's routine output still goes to the console/latest.log with normal: true; debug goes only to logs/debug.log. Warnings and errors are never silenced by either key.

Remove the "Player issued command" line from the console#

On a busy server the commands.normal category prints every player command.

/neoe reload

logging.categories.commands.normal: false stops writing these lines after a reload. The commands themselves work as before. Command registration errors are still visible.

Edge cases#

There is no separate mod log file#

Debug goes to the platform's standard logs/debug.log (Log4j2), not to logs/neoessentials/. The auctionHouse category in the config is camelCase; the enum in code may look different, but the JSON key is exactly auctionHouse.

What to do: Look for the trace in logs/debug.log. Do not create an empty logs/neoessentials/debug.log by hand — the mod does not write debug there (that folder gets, for example, the economy's transactions.log).

12 categories, not a single switch#

Keys: chat, economy, permissions, teleportation, moderation, auctionHouse, kits, webDashboard, discord, config, commands, general. general covers everything without its own category (storage, holograms, shop, localization, vault).

What to do: If "nothing is logged" after enabling debug, you enabled the wrong category. For a warp that is teleportation, for /pay it is economy.

Detailed guide#

The section below is the project's original documentation (docs/Wiki/Logging.md). Links to other wiki pages are rewritten to this site; the guides themselves are not edited, so upstream syncs stay conflict-free.

Version: 1.0.5+build.54 · Config: config.json → logging section


Overview#

NeoEssentials logs through a per-subsystem system instead of one all-or-nothing debug switch. Every log call in the mod is routed through one of 12 categories, and each category has two independent toggles:

"logging": {
  "categories": {
    "chat":          { "normal": true, "debug": false },
    "economy":       { "normal": true, "debug": false },
    "permissions":   { "normal": true, "debug": false },
    "teleportation": { "normal": true, "debug": false },
    "moderation":    { "normal": true, "debug": false },
    "auctionHouse":  { "normal": true, "debug": false },
    "kits":          { "normal": true, "debug": false },
    "webDashboard":  { "normal": true, "debug": false },
    "discord":       { "normal": true, "debug": false },
    "config":        { "normal": true, "debug": false },
    "commands":      { "normal": true, "debug": false },
    "general":       { "normal": true, "debug": false }
  }
}
Toggle Default Where it shows up What it covers
normal true Console + logs/latest.log Routine, non-error messages for that category (e.g. "migrated N transaction records")
debug false logs/debug.log only Verbose tracing — request/decision/outcome for that category's key operations

Warnings and errors are never gated by either toggle. Turning a category off can only silence its routine chatter or opt-in verbose tracing — a real problem in that subsystem will always be logged, so you can't accidentally hide an actual bug by disabling a category.

debug messages don't need any extra setup to reach logs/debug.log — the platform's default Log4j2 configuration already routes DEBUG-level output there, separately from the INFO+ level that reaches the console and logs/latest.log. There's no NeoEssentials-specific log file.


Categories#

Category Config key Covers
Chat chat Chat formatting, channels, anti-spam, badges/status icons, mute/msg-toggle/ignore state, AFK
Economy economy Balances, pay, transactions, worth/sell, economy modifiers
Permissions permissions Internal permission system, LuckPerms/FTB Ranks/Bukkit-Sponge adapters, permission resolution
Teleportation teleportation Homes, warps, spawn, /tpa, /back, random teleport, direct/admin teleports
Moderation moderation Bans, kicks, jails, warns, freezes, vanish
Auction House auctionHouse Listing create/bid/buy/cancel/expire lifecycle
Kits kits Kit claim eligibility checks and grants
Web Dashboard webDashboard HTTP request handling, authentication, analytics, backups, cloud storage, the map/websocket features
Discord discord Chat bridge adapters (SDLink, Mc2Discord, DCIntegration)
Config config Config file load/migration/version-check/split-config decisions
Commands commands Command registration/dispatch tracing, and (as of build.61) a "PlayerName issued command: /..." console line for every player command — set commands.normal: false to turn that line off
General general Everything else: database/storage, scheduler, security, items, inventory, holograms, tags, teams, resource packs, shop, vault, localization

Example: Debugging a Broken Warp#

Flip on verbose tracing for just teleportation, without touching anything else:

"teleportation": { "normal": true, "debug": true }

/neoessentials reload, reproduce the issue, then check logs/debug.log for a trace of the warp request — target resolution, permission/cooldown checks, and the actual teleport execution. Turn it back off once you're done; leaving debug on for a busy category can add a meaningful amount of log volume over time.


Migrating from the Old Global Toggle#

Older configs used a single logging.enableDebugLogging boolean. On first boot after updating, this is migrated automatically:

  • If enableDebugLogging was true, every category's debug flag is seeded to true, so you don't silently lose verbose output you were relying on — you can then dial individual categories back down.
  • If it was false or unset, categories are simply populated with their defaults above.
  • The old key is left on disk (unused, harmless) rather than removed.

This migration is one-time — once logging.categories exists in your config, it's yours to edit freely.