Ich habe den mruby-Handler zum Formatieren/Kontrollieren des Zugriffsprotokolls geschrieben.
aber ich muss jedem Tonnen Pfad die Direktive mruby-handler-file hinzufügen: in h2o conf.
Es scheint besser zu sein, das Hinzufügen eines Handlers zur Zugriffsprotokolldirektive zuzulassen und jede Anforderung/Antwort in diesem Bereich anzuwenden.
Anwendungsfall:
Hallo @Jxck
die meisten der Dinge, die Sie erwähnt haben, können bereits erledigt werden, sind aber möglicherweise etwas unterdokumentiert.
Das Rotieren von Logdateien sollte über eine Pipe erfolgen, ich habe kürzlich versucht, die Dokumentation hier ein wenig zu verbessern:
https://github.com/h2o/h2o/pull/1528
die Formatierung der Logs über json kann bereits über escape: json
Das Protokollieren aller Header sollte auf jeden Fall möglich sein, ist es aber nicht. iirc Ich habe einmal ein Ticket geöffnet, kann es aber gerade nicht finden. Momentan mache ich diesen Hack in mruby:
headers = JSON.dump(env.find_all{|k,v| k.start_with?("HTTP_")})
[200, { "x-fallthru-set-MRB_HEADERS" => headers }, [result]]
und logge dich dann ein über:
access-log:
path: /dev/stdout
format: '{ "requestHeaders": %{MRB_HEADERS}e }'
escape: json
Ich denke nicht, dass Ihre Idee, für jeden Anruf mruby-Code aufzurufen, nur um die Protokolle zu manipulieren, sinnvoll ist, es wäre zu teuer.
Der Punkt meines Problems ist nicht, wie man einen Handler schreibt, sondern wie man ihn auf path anwendet.
wie ich geschrieben habe
aber ich muss jedem Tonnen Pfad die Direktive mruby-handler-file hinzufügen: in h2o conf.
und
es wäre zu teuer.
das hängt vom Anwendungsfall ab.
logger gilt bereits für je req/res an den Server, wenn Sie access-log aktivieren.
@Jxck es ist mir dann nicht wirklich klar, was das Problem ist.
Könnten Sie vielleicht Ihre aktuelle Problemumgehung erklären und eine Beispielkonfiguration erstellen, wie es Ihrer Meinung nach besser gemacht werden könnte?
Habe mit \n
) oder Antwort-Header zu protokollieren.
@kazuho freut sich darauf, sie zu sehen!
@kazuho
Wäre auch toll, wenn es einen Json-Modus gäbe, entweder als Objekt oder Array von Arrays.
Ich logge sie derzeit auch über mruby ein, aber es ist hässlich, da sie nicht im Originalformat vorliegen
irgendwelche Updates?
Hilfreichster Kommentar
Habe mit
\n
) oder Antwort-Header zu protokollieren.