Das Protokoll kannte nur, was jemand ausdrücklich hineinschrieb
Start, Ende, ein paar Fehler — mehr stand nie drin. Dabei meldet der Server längst, was er tut: „Scan gestartet", „Strom angelegt", „Untertitel aus … gezogen", „Bibliothek ohne Treffer". Das ging alles an `ILogger` und damit in die Container-Ausgabe, wo es zwischen den EF-Abfragen untergeht. Eine Senke hängt das Tagebuch jetzt an die Protokollkette. Nur Flaros eigene Kategorien — `Microsoft.*` käme mit einer Zeile je Datenbank- abfrage und machte das Protokoll nach einem Scan unlesbar. Debug und Trace bleiben draussen, die sind fürs Entwickeln. Damit fallen die beiden Stellen weg, an denen ich gestern von Hand ins Tagebuch geschrieben habe; sie kommen jetzt über denselben Weg wie alles andere. Der Name der Quelle steht davor: „Streamkoordinator: …". Nebenbei: das Tagebuch wird von Hand gebaut statt aus dem Behälter geholt. Die Senke braucht es, bevor der Behälter steht, und ein `BuildServiceProvider()` dafür legte eine zweite Ausgabe an — zwei Tagebücher mit zwei Schlössern, die sich beim Schreiben ins Gehege kommen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
19ec17da19
commit
347ddfea01
@@ -190,7 +190,20 @@ builder.Services.AddHostedService(sp => sp.GetRequiredService<Wartungsplan>());
|
||||
// Im Arbeitsspeicher und nur dort: wer gerade was schaut, ist eine Frage
|
||||
// ueber den Augenblick. Nach einem Neustart lautet die Antwort: niemand.
|
||||
builder.Services.AddSingleton<PlaybackSessions>();
|
||||
builder.Services.AddSingleton<Tagebuch>();
|
||||
// **Von Hand gebaut, nicht aus dem Behälter geholt.** Die Protokollsenke
|
||||
// braucht ihn, bevor der Behälter steht; ein `BuildServiceProvider()` dafür
|
||||
// legte eine zweite Ausgabe an — zwei Tagebücher mit zwei Schlössern, die
|
||||
// sich beim Schreiben ins Gehege kommen.
|
||||
var tagebuch = new Tagebuch(pfade, TimeProvider.System);
|
||||
builder.Services.AddSingleton(tagebuch);
|
||||
|
||||
// **Was der Server ohnehin meldet, gehört auch ins Tagesprotokoll.**
|
||||
//
|
||||
// „Scan gestartet", „Strom angelegt", „Untertitel gezogen" standen längst
|
||||
// im Quelltext — sie gingen nur an die Container-Ausgabe, wo sie zwischen
|
||||
// den EF-Abfragen untergehen. Die Senke nimmt nur Flaros eigene Kategorien;
|
||||
// `Microsoft.*` bliebe sonst mit einer Zeile je Datenbankabfrage darin.
|
||||
builder.Logging.AddProvider(new Tagebuchsenke(tagebuch));
|
||||
|
||||
// **Die Schlüssel der Datenverschlüsselung gehören ins Volume.**
|
||||
//
|
||||
@@ -383,7 +396,6 @@ if (Directory.Exists(oberfläche))
|
||||
// macht den Unterschied zwischen „dauert eben" und „stürzt ab". Steht mitten
|
||||
// im Scan ein Start, weiss man es beim nächsten Blick ins Protokoll.
|
||||
{
|
||||
var tagebuch = app.Services.GetRequiredService<Tagebuch>();
|
||||
var leben = app.Services.GetRequiredService<IHostApplicationLifetime>();
|
||||
|
||||
leben.ApplicationStarted.Register(() =>
|
||||
|
||||
Reference in New Issue
Block a user