Context
`NullLogger.Instance` is used in `ConfigController` when constructing `SyncService` and `LibraryProvisioner`. This means sync operations produce no logs in production, making debugging difficult for end users.
Problem
`ILoggerFactory` is not registered in Emby's DI container, which prevented injecting it directly into `ConfigController`. As a workaround, `NullLogger.Instance` was used.
Fix
Investigate the correct way to obtain a typed `ILogger` within an Emby plugin controller. Options:
- Inject `ILogger` and `ILogger` directly (check if registered by Emby)
- Register these loggers manually in `Plugin.cs` or a service registration hook
- Use `Plugin.Logger` (base class property) and pass it down
Impact
Without real logging, failures in manual syncs triggered from the UI are silent — users see "0 items failed" with no log entries.
Priority
Medium — Affects debuggability but does not block catalog submission.
Context
`NullLogger.Instance` is used in `ConfigController` when constructing `SyncService` and `LibraryProvisioner`. This means sync operations produce no logs in production, making debugging difficult for end users.
Problem
`ILoggerFactory` is not registered in Emby's DI container, which prevented injecting it directly into `ConfigController`. As a workaround, `NullLogger.Instance` was used.
Fix
Investigate the correct way to obtain a typed `ILogger` within an Emby plugin controller. Options:
Impact
Without real logging, failures in manual syncs triggered from the UI are silent — users see "0 items failed" with no log entries.
Priority
Medium — Affects debuggability but does not block catalog submission.