J'ai écrit mruby handler pour formater/contrôler le journal d'accès.
mais je dois ajouter la directive mruby-handler-file à chaque tonne de chemin : dans h2o conf.
il semble préférable d'autoriser l'ajout d'un gestionnaire à la directive d'accès au journal et d'appliquer chaque demande/réponse sous cette portée.
cas d'utilisation:
salut @Jxck
la plupart des choses que vous avez mentionnées peuvent déjà être faites mais peuvent être légèrement sous-documentées.
la rotation des fichiers journaux doit être effectuée via pipe, j'ai récemment essayé d'améliorer un peu la documentation ici :
https://github.com/h2o/h2o/pull/1528
le formatage des logs via json peut déjà être fait via escape: json
la journalisation de tous les en-têtes devrait être possible, mais ce n'est pas le cas. iirc J'ai déjà ouvert un ticket mais je ne le trouve pas pour le moment. actuellement je fais ce hack dans mruby:
headers = JSON.dump(env.find_all{|k,v| k.start_with?("HTTP_")})
[200, { "x-fallthru-set-MRB_HEADERS" => headers }, [result]]
puis connectez-vous via :
access-log:
path: /dev/stdout
format: '{ "requestHeaders": %{MRB_HEADERS}e }'
escape: json
Je ne pense pas que votre idée d'appeler le code mruby pour chaque appel juste pour falsifier les journaux ait du sens, ce serait trop cher.
le but de mon problème n'est pas de savoir comment écrire un gestionnaire, mais comment l'appliquer à path.
Comme j'ai écrit
mais je dois ajouter la directive mruby-handler-file à chaque tonne de chemin : dans h2o conf.
et
ce serait trop cher.
cela dépend du cas d'utilisation.
logger s'applique déjà à jamais req/res au serveur si vous activez access-log.
@Jxck, ce n'est pas vraiment clair pour moi quel est le problème alors.
pourriez-vous peut-être expliquer votre travail actuel et faire un exemple de configuration sur la façon dont vous pensez que cela pourrait être fait d'une meilleure manière ?
J'ai discuté avec j'ai convenu qu'il serait logique d'avoir une directive de journalisation qui nous permette de consigner tous les en-têtes de requête (éventuellement concaténés avec \n
) ou les en-têtes de réponse.
@kazuho hâte de les voir !
@kazuho
Ce serait aussi génial s'il y avait un mode json en tant qu'objet ou tableau de tableaux.
Je les enregistre également via mruby, mais c'est moche car ils ne sont pas dans leur format d'origine
les mises à jour ?
Commentaire le plus utile
J'ai discuté avec j'ai convenu qu'il serait logique d'avoir une directive de journalisation qui nous permette de consigner tous les en-têtes de requête (éventuellement concaténés avec
\n
) ou les en-têtes de réponse.