premium banner
STDOUT/STDERR tracing (and more)

Description

Logo

Redirect the Standard Out/Error streams to Log4j2 and also optionally save a 'blamefile' with the names of offending classes/lines along with a count of how many entries it has created during the most recent run.

In Forge

The basic functionality of Artemis has now been merged into the Forge Mod Loader, however this uses a vastly simplified approach, lacking the multi-line stack printing, internal class ignore and blamefile generation. Artemis will take control of the standard streams from FML during preinit. Before preinit (such as during coremod initialisation), FML will handle redirection - This is a limitation of Artemis loading as a standard mod (and thus loading after coremods).

Installing

Simply download the jar into the mods folder. This works on both clients and servers.

Usage

The mod exposes no in game commands or controls; all it does is enhance log files.

Configuration

The configuration file will be in the usual config folder as Artemis.cfg. The following can be configured:

  • Blame
    • (Boolean) createBlamefile - Creates the Artemis Blamefile on game exit (default false; see "The JVM Shutdown Hook" below)
  • Logging
    • (Boolean) ignoreBuiltins - Ignore internal classes that match the builtin regex (default false; see Builtins below)
    • (Int) stackDepth - How many lines of stack trace to show per log entry (default 1)
  • Builtins
    • (String) customRegex - The regex used to determine what is an internal class (default "^paulscode..*|^java.lang..*|^com.intellij..*|^sun..*")
    • (Boolean) useCustomRegex - Use the regex provided in the config else use the default one (default false)
  • IdMap
    • (Boolean) mapModIds - Replace class names with the owning mods ID (does not affect blamefile output format)

The JVM Shutdown Hook

In order to create the blamefile on server shutdown, the mod inserts what is known as a "JVM shutdown hook" during preinit. This basically queues a task for when the game (and hence JVM) closes down. This is only done because Forge lacks the proper events, and mods may continue to log during shutdown, thus the hook ensures this runs last. This is disabled by default, so no blamefile is generated.

Contacts and Links