- New env var XL_PLATFORM allows launcher to inform Dalamud of the current platform (one of Windows, macOS, or Linux).
- New method Util.GetHostPlatform() provides a best guess for the current platform. This method will respect XL_PLATFORM if set, but will otherwise resort to heuristic checks.
- Renames `IsLinux` to `IsWine` to better reflect that this will return true for macOS as well.
- Fixes a bug caused by misbehaving apps wanting to be helpful to Linux users
- Also makes Wine checking far more resilient in cases where XL_WINEONLINUX isn't set.
- Rename `PluginLog`'s property to `Dalamud.PluginName` to match what `IPluginLog` is doing.
- Change `ModuleLog` to use `Dalamud.ModuleName` as its context property.
- Update the Console window to handle both changes.
- Add the ability to filter to only Dalamud module log messages.
There's no reasonable way the args passed in will be null. There's tons of null checking that square does before passing the pointers to these functions. If they are null, then the game has likely already crashed.
Adds a new `IPluginLog` service to Dalamud, which provides scoped logging on a per-plugin basis. This improves log performance for plugins, and paves the way for per-plugin log levels.
* Plugins must opt in to enable verbose logging by setting `IPluginLog.MinimumLogLevel` to `LogEventLevel.Verbose`. This option is automatically enabled for dev plugins and is currently not persisted.
* All release plugins will default to `Debug` as their lowest allowed log level.
* This setting does not override the global log level set in Dalamud.