H2o: gestionnaire de journalisation

Créé le 16 déc. 2017  ·  7Commentaires  ·  Source: h2o/h2o

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:

  • ajout de tous les en-têtes de requête dans acccesslog
  • formatage des valeurs en json/ltsv etc via le gestionnaire
  • fichier journal de routage/rotation du gestionnaire

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.

Tous les 7 commentaires

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 ?

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Ys88 picture Ys88  ·  5Commentaires

utrenkner picture utrenkner  ·  3Commentaires

ndac-todoroki picture ndac-todoroki  ·  5Commentaires

ahupowerdns picture ahupowerdns  ·  8Commentaires

voiddeveloper picture voiddeveloper  ·  6Commentaires