florisz / BerghAdmin

0 stars 0 forks source link

Logger implementeren #43

Open florisz opened 2 years ago

mountain65 commented 2 years ago

Het idee dat ik had is blijkbaar nogal uniek, want ik vind er niet veel over. Logging is zo'n cross-cutting concern. Dat wordt meestal opgelost in de .net wereld door overal een ILogger te injecteren. Support daarvoor is perfect in .NET Core. Maar in de Unix wereld schrijf je altijd naar Console.Out en Console.Err en redirect je dat vervolgens waar je maar naar toe wilt. Dat zou best handig zijn, want Console.WriteLine hoef je niet te injecteren.

mountain65 commented 2 years ago

Nadeel is dat je geen logLevels kunt specificeren. Misschien dan een Global Static (oef 2 woorden die je als programmeur nooit zou moeten gebruiken) logger die Trace.WriteLine, Debug.WriteLine, Console.WriteLine en Console.Error.WriteLine gebruikt?

mountain65 commented 2 years ago

En je kunt ook geen structured logging doen.

mountain65 commented 2 years ago

Maar de grote mensen zijn het wel met me eens: https://12factor.net/logs

Instead, each running process writes its event stream, unbuffered, to stdout.

mountain65 commented 2 years ago

OK, er begint ondersteuning voor dit idee te komen. Zie https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-diagnostic-logs#overview Heb gezien dat het werkt. VInd het wel wat.

mountain65 commented 2 years ago

Om er vervolgens achter te komen dat de support in .NET Core niet heel ver gaat. Lijkt erop dat ze het ook niet van plan zijn. Er staan al issues sinds 2017 open.