Artemis

The Artemis mod redirects standard output and error streams to the Log4j2 logging system. Additionally, it can create a special report file that records problematic classes and code lines along with the number of entries generated during the current gaming session.
Integration with Forge
Although the basic functionality of Artemis is now built into the Forge mod loader, its implementation is significantly simplified and lacks features such as multi-line stack trace output, internal class ignoring, and report file generation. Artemis takes control of standard streams from FML during the pre-initialization phase. Before this point (for example, during core mod initialization), redirection is handled by FML — this limitation is due to Artemis loading as a regular mod after core mods.
Installation
Simply download the JAR file and place it in the mods folder. The mod works on both client and server.
Usage
The mod does not add in-game commands or control elements — its only task is to improve log files.
Configuration
The configuration file is located in the standard config folder under the name Artemis.cfg. The following parameters are available:
- Reports
- (Boolean) createBlamefile — creates the Artemis report file when the game ends (default false; see "JVM Shutdown Hook" section below)
- Logging
- (Boolean) ignoreBuiltins — ignore internal classes matching the built-in regular expression (default false; see "Built-ins" section below)
- (Integer) stackDepth — number of stack trace lines to display in each log entry (default 1)
- Built-ins
- (String) customRegex — regular expression for determining internal classes (default "^paulscode..|^java.lang..|^com.intellij..|^sun..")
- (Boolean) useCustomRegex — use the regular expression from configuration instead of the standard one (default false)
- ID Map
- (Boolean) mapModIds — replace class names with the corresponding mod identifiers (does not affect the output format in report files)
JVM Shutdown Hook
To create the report file when the server shuts down, the mod adds a so-called "JVM shutdown hook" during pre-initialization. This allows scheduling a task that will execute when the game (and accordingly, JVM) closes. This solution is necessary because Forge does not provide corresponding events, and mods may continue to write logs during the shutdown process. The hook ensures that this operation is performed last. By default, the feature is disabled, so the report file is not created.