You are viewing a potentially older version of this package.
View all versions.
AsyncLoggers
YEET the logs to their own thread!
Date uploaded | 2 weeks ago |
Version | 2.1.3 |
Download link | mattymatty-AsyncLoggers-2.1.3.zip |
Downloads | 56249 |
Dependency string | mattymatty-AsyncLoggers-2.1.3 |
README
Async Loggers
YEET the logs to their own thread!
For the users:
Async Logs:
remove any log related lag by processing them separately from the game stuff. the more logs your modpack generates the bigger the impact this mod has!
Log Level filter:
Reduce logs from mods by specifying a LogLevel for each LogSource
Unity Log wrapping:
Detect calls to Unity.Debug
inside the game assemblies and allow users to tweak them
Note: Has to be enabled in the config LogWrapping.Enabled
For the Developers:
the class AsyncLoggers.API.AsyncLoggersAPI
contains a method to register your own ILogListener
into AsyncLoggers system:
public static void UpdateListenerFlags(ILogListener target, LogListenerFlags flags)
possible flags are:
SyncHandling
This listener will receive logs directly, without any buffering or delay.IgnoreFilters
This listener will receive all logs, bypassing any filters that might be applied.AddTimeStamp
This listener will have a timestamp prepended to the log messages.None
additionally the class exposes two properties:
CHANGELOG
v2.1.3
- do not query frameCount from outside the main thread
v2.1.2
- fix crash while quitting the game
v2.1.1
- add UnityFrame as timestamp option
v2.1.0
- New API for registering ILogListeners ( API version 1.0.0 )
- improved detection of
Debug.Log
calls ( Config version v1.1 )- Rewrote the decompiler from scratch ðŸ˜
v2.0.3
- ensure assemblies in the LogWrapping pass are loaded in dependency order
v2.0.2
- small optimizations to wrapping system
v2.0.1
- fix wrong defaults
v2.0.0
- remove DBAPI
- add some api to handle custom ILogListeners
- remove patches to unity loggers
- embed AsyncLoggers.Filter
- immediately defer logs with a global Dispatcher Thread
- add LogWrapping system to edit basegame Log calls
v1.6.3
- generate LogEvent timestamp only once
v1.6.2
- fix Database rolling failing after 1 cycle
- fix NRE during app closing if Database is disabled
- add more try/catches to prevent unwanted exceptions from propagating
v1.6.1
- fix errors during shutdown
v1.6.0
- added Mods table to SqliteDb
- added Events table to SqliteDb
- added ModData table to SqliteDb
- new API for mods to write custom events and or data to sqliteDb ( intended use only for debug not as storage )
v1.5.1
- cleanup and minor bugs caused by forgotten debug lines
v1.5.0
- add incremental counter as TimeStamp option
- add option to write a Sqlite DB for collecting logs
- improve performance of TimeStamps
- Disable StackTraces by default
v1.4.0
- add Timestamps to BepInEx logs
- removed AsyncLogger from exception stackTraces (BepInEx only)
v1.3.0
- make the mod a PrePatcher ( meaning will load before everybody else )
- allow for multiple IJobs ( if somebody wants to have BepInEx use Jobs too )
- add LobbyCompatibility softDependency
v1.2.7
- use non-unsigned values to calculate the wrapPoint ( make the patch actually work )
v1.2.6
- dispose of BepInEx loggers when wrapper is disposed
- use Application.quitting instead of Application.wantsToQuit
v1.2.5
- apply circular buffer logic and overwrite older logs
v1.2.4
- avoid a cast at startup
v1.2.3
- change threads to not background
v1.2.2
- small improvements
- add config to decide the Shutdown Action
v1.2.1
- use a size-limited RingBuffer instead of indefinitely growing buffer
- add config options for buffer sizes
v1.2.0
- added Scheduler type selection
v1.1.0
- Improved performance
- Added Error handling of logs