
Async Logger in FTB Skies 2: Aero
FTB Skies 2: Aero 1.13.0 ships version 2.2.2+1.21.1-neoforge · First seen in 1.0.3
Async Logger is a mod in FTB Skies 2: Aero 1.13.0, where it is version 2.2.2+1.21.1-neoforge. Asynchronous logging and efficient filtering - performance improvements and utility for keeping your logs clean (Summary from the mod's Modrinth page.)
Async Logger guide for FTB Skies 2: Aero
Last verified for FTB Skies 2: Aero v1.10.0 on Oct 8, 2026 · text last changed Oct 8, 2026
This is the newest guide. It hasn't been checked against 1.13.0 yet.
- Sections
- 5
Every recipe and number here was checked against FTB Skies 2: Aero 1.10.0, read from the running game on Sep 22, 2026.
What is Async Logger?
2 parts
Async Logger is a performance and utility mod that moves Minecraft's logging off the main logging path and onto its own thread. In vanilla, the actual logging work, including the I/O, happens on the logging thread. This mod makes it asynchronous instead.[1]
It matters most when a lot of messages are being logged, or when debug logging is on. That is the default on Forge and NeoForge, which is why a big modpack like this one benefits.[1]
What it does for you
- Faster logging: the mod's own benchmark shows 10k simple messages taking 6146.1ms in vanilla and 141.2ms with Async Logger. Messages with a throwable (1.5k) go from 19572.4ms to 9.0ms.[1]
- Log filtering: it can filter by logger name, level and message (substring or regular expression). Filtering runs on the async logger thread, so the code doing the logging pays no extra cost. You switch it on in the mod's config.[1]
- Config control: the config file gives you easy control of some log4j2 settings, and System.out and System.err can be redirected to loggers.[1]
In this pack
This pack ships Async Logger 2.2.2+1.21.1-neoforge. The mod has been in the pack since version 1.0.3 or earlier, so it is a long-standing part of the setup.[2]
It works entirely behind the scenes. It adds no items, blocks or recipes for you to craft, so there is nothing to unlock or progress through. It is worth knowing about mainly if you read your logs or help troubleshoot crashes.[1]
How do you get started with Async Logger?
2 parts
Async Logger is a logging mod, not an item mod, so there's nothing to craft or place to get started. It moves the actual logging work onto its own thread, which matters most when lots of messages are being logged or debug logging is on. Everything you do with it happens in its config.[1]
First steps, in order
- Open config/asynclogger.toml and check that enabled is true. That's how the pack ships it, and it's the switch for the whole mod.[3]
- Check filtering.enabled. It's true in the pack, so log filtering is on. Filtering runs on the dedicated async thread, so the code doing the logging pays no overhead for it.[1][3]
- Look at filtering.strings. The pack sets it to filter out messages containing "Start burner". The other filter lists (filtering.levels, filtering.loggers and filtering.regexes) are empty in the pack's main config.[3]
- Leave the log4j2 tuning options alone unless you know you need them. asyncQueueFullPolicy, discardThreshold, formatMsgAsync, synchronizeEnqueueWhenQueueFull and waitStrategy are empty, which means default. ringBufferSize is 0, which means the mod's own default.[3]
Adding your own filters
You can filter by logger name, by level, or by message, either as a substring or as a regex. Valid levels are TRACE, DEBUG, INFO, WARN, ERROR and FATAL.[1][3]
If you'd rather not edit the main file, the config says you can also put filters in files under config/asynclogger/. That way you can add your own comments and formatting. The pack's default.toml there has filtering.levels, filtering.loggers, filtering.regexes and filtering.strings all empty.[3][4]
How does Async Logger work?
4 parts
Async Logger has no machines, multiblocks or power to wire up. It works in the background on the game's log, so the mechanics here are about how log messages are handled and how the pack sets the mod up.[1]
How the logging works
In vanilla, loggers are not asynchronous, so the actual logging work, including I/O, happens on the logging thread. Async Logger moves that work off to a separate thread. It matters most when a lot of messages are logged or when debug logging is on, which is the default on Forge and NeoForge.[1]
Under the hood the mod uses asynchronous loggers rather than asynchronous appenders, because the former are newer, faster and lighter on allocation rate. They need the LMAX Disruptor library, and the mod loads it onto the system classloader if it isn't already present.[1]
The project page lists these benchmark results, vanilla versus Async Logger:[1]
- Simple messages (10k): 6146.1ms vs 141.2ms.[1]
- Messages with placeholders (10k): 6413.2ms vs 96.6ms.[1]
- Messages with a throwable (1.5k): 19572.4ms vs 9.0ms.[1]
Filtering
Filtering removes unwanted messages from your logs. It is controlled by filtering.enabled, which is on in this pack. Filtering by logger name, level and message (substring or regex) is supported. Unless global filtering is on, it runs on the dedicated async thread, so the code that logged the message pays no extra cost.[1][3]
- filtering.levels: levels to drop. Valid values are TRACE, DEBUG, INFO, WARN, ERROR and FATAL. The pack leaves it empty.[3]
- filtering.loggers: drops messages from loggers with the given names. Empty in this pack.[3]
- filtering.regexes: drops messages matching the given regexes. Empty in this pack.[3]
- filtering.strings: drops messages containing the given substrings. The pack sets this to "Start burner", so any message containing that text is filtered out.[3]
You can also add filters in separate files under config/asynclogger, where you can add your own comments and formatting. The pack ships config/asynclogger/default.toml with filtering.levels, filtering.loggers, filtering.regexes and filtering.strings all empty.[3][4]
Global filtering and System.out
filtering.global is false in this pack. If you turn it on, filtering happens globally instead of at the logger stage. That can avoid creating the log event at all, but the filtering then runs on the caller thread and can't process placeholders properly.[3]
filtering.sysout is true, so filtering also applies to System.out (treated as INFO) and System.err (treated as ERROR). However, wrapSysOutSysErr is false in this pack, meaning those streams are not redirected to the logger. The config notes that in that case filtering happens on the caller thread.[3]
Other pack settings
enabled is true, so the mod is active. ringBufferSize is 0, which means the mod default is used (-1 would use the log4j2 default).[3]
Several options map straight onto log4j2 settings and are all left empty, which means their defaults apply: asyncQueueFullPolicy, discardThreshold, formatMsgAsync, synchronizeEnqueueWhenQueueFull and waitStrategy.[3]
Which Async Logger config options matter?
3 parts
Async Logger works out of the box in this pack, and most of its options are left at their stock-looking values. Here are the ones you're most likely to care about, and how the pack sets them. All of them live in enabled's file, config/asynclogger.toml.[3]
The main switches
- enabled is true, so the mod is turned on.[3]
- noDebugLog is false. If you turn it on, the mod stops writing to debug.log, and any archived debug log matching the pattern debug-[1-5].log.gz gets deleted. This option only applies on Forge and NeoForge.[3]
- wrapSysOutSysErr is false, so System.out and System.err are not redirected to the logger.[3]
- testPerformance is false. Turning it on compares logging with and without Async Logger and logs the results, but it prints a mass amount of messages at startup, so only use it when you're curious.[1][3]
Log filtering
Filtering is on in this pack: filtering.enabled is true. filtering.global is false, so filtering happens on the dedicated async thread with no overhead for the caller. filtering.sysout is true, so System.out (treated as INFO) and System.err (treated as ERROR) are filtered too.[3]
The one filter the pack actually uses is filtering.strings, which is set to ["Start burner"]. Any message containing that text is filtered out and not logged. filtering.levels, filtering.loggers and filtering.regexes are all empty in the main file.[3]
Advanced log4j2 tuning
The remaining options pass values to log4j2 and are best left alone. asyncQueueFullPolicy, discardThreshold, formatMsgAsync, synchronizeEnqueueWhenQueueFull and waitStrategy are all empty strings, which means default behaviour. ringBufferSize is 0, which means use the mod's default.[3]
What changed in Async Logger between versions?
2 parts
FTB Skies 2: Aero 1.10.0 ships Async Logger 2.2.2+1.21.1-neoforge. The mod was already in the pack by version 1.0.3 or earlier, so it has been there since the early releases.[2]
I don't have any pack changelog entries that mention this mod. Below are the notable changes from the mod's own changelogs for the two versions I can see.[2]
2.2.2 (the version in this pack)
- Fixed a game crash that happened when the filtering.sysout option was set to true.[5]
- Added Ornithe support, independent of the Minecraft version. This doesn't affect you on NeoForge.[5]
2.1.2
Sources
- Async Logger project page (modrinth) · official mod data
- FTB Skies 2: Aero 1.10.0 mod list · pack file
- FTB Skies 2: Aero 1.10.0 config: config/asynclogger.toml · pack file
- FTB Skies 2: Aero 1.10.0 config: config/asynclogger/default.toml · pack file
- Async Logger 2.2.2+1.21.1-neoforge changelog · changelog
- Async Logger 2.1.2+1.21.1-neoforge changelog · changelog
Where this guide comes from
Written from what FTB Skies 2: Aero itself ships: its files and recipes, the in-game guidebooks and the mods' own pages. Every statement links to the source it came from, and the numbers are checked against the pack before publishing.
Guide last verified Oct 8, 2026.
Report wrong info
Version in each release
21 releases, first in 1.0.3
| FTB Skies 2: Aero | Version | Jar | Where it came from |
|---|---|---|---|
| 1.13.0 Sep 28, 2026 | 2.2.2+1.21.1-neoforge | asynclogger-2.2.2+1.21.1-neoforge.jar | From the published release |
| 1.12.1 Sep 22, 2026 | 2.2.2+1.21.1-neoforge | asynclogger-2.2.2+1.21.1-neoforge.jar | From the published release |
| 1.12.0 Sep 21, 2026 | 2.2.2+1.21.1-neoforge | asynclogger-2.2.2+1.21.1-neoforge.jar | From the published release |
| 1.10.0 Sep 8, 2026 | 2.2.2+1.21.1-neoforge | asynclogger-2.2.2+1.21.1-neoforge.jar | From the published release |
| 1.9.1 Sep 2, 2026 | 2.2.2+1.21.1-neoforge | asynclogger-2.2.2+1.21.1-neoforge.jar | From the published release |
| 1.9.0 Sep 1, 2026 | 2.2.2+1.21.1-neoforge | asynclogger-2.2.2+1.21.1-neoforge.jar | From the published release |
| 1.8.0 Aug 25, 2026 | 2.2.2+1.21.1-neoforge | asynclogger-2.2.2+1.21.1-neoforge.jar | From the published release |
| 1.7.3 Aug 19, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.7.2 Aug 18, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.7.1 Aug 18, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.6.1 Aug 13, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.6.0 Aug 11, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.5.1 Aug 8, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.4.1 Aug 4, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.4.0 Aug 3, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.3.0 Jul 30, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.2.1 Jul 28, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.2.0 Jul 28, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.1.1 Jul 25, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.1.0 Jul 24, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
| 1.0.3 Jul 17, 2026 | 2.1.2+1.21.1-neoforge | asynclogger-2.1.2+1.21.1-neoforge.jar | From the published release |
"From pack files" means the list came from the pack's own files; "from the published release" means ForgeBase read the jars of the release itself.
Items and blocks
We can't match this mod to the pack's item list: it registers as asynclogger, and the pack's recipe dump has nothing under that name. That means we found nothing, not that the mod adds nothing. Search the item browser
Config options (how FTB Skies 2: Aero sets them)
21 settings this pack ships for the mod. We don't have the mod's own defaults to compare them against yet.
Show settings
| Setting | FTB Skies 2: Aero value |
|---|---|
filtering.levels config/asynclogger/default.toml | [] |
filtering.loggers config/asynclogger/default.toml | [] |
filtering.regexes config/asynclogger/default.toml | [] |
filtering.strings config/asynclogger/default.toml | [] |
asyncQueueFullPolicy Specifies the value for log4j2.asyncQueueFullPolicy (leave empty for default) config/asynclogger.toml | |
discardThreshold Specifies the value for log4j2.discardThreshold (leave empty for default) config/asynclogger.toml |
Comments and tips
Loading comments...