L'éditeur php Xigua vous présentera comment enregistrer automatiquement la structure via Zerolog. Zerolog est une bibliothèque de journalisation hautes performances qui nous aide à enregistrer automatiquement des journaux structurés dans les applications. En utilisant Zerolog, nous pouvons facilement enregistrer des informations sur différentes sources de sortie telles qu'une console, un fichier ou un serveur distant. Dans le même temps, Zerolog fournit également des niveaux de journalisation riches, des fonctions d'ajout de champs et de formatage, nous permettant de contrôler et de gérer les informations des journaux de manière plus flexible. Apprenons ensuite comment utiliser Zerolog pour enregistrer automatiquement des journaux structurés !
J'utilise zerolog
pour me connecter à l'application go. Je veux enregistrer une carte (json) et j'ai trouvé un moyen :
log.info(). str("foo", "bar"). dict("dict", zerolog.dict(). str("bar", "baz"). int("n", 1), ).msg("hello world") // output: {"level":"info","time":1494567715,"foo":"bar","dict":{"bar":"baz","n":1},"message":"hello world"}
Dans l'exemple ci-dessus, j'ai besoin de la méthode dans zerolog.dict()
方法中指定每个 key-value
对。我想知道是否有自动记录 struct
.
Par exemple, j'ai une structure comme celle-ci :
type message struct { aws_region string `json:"region"` log_level string `json:"level"` stage string `json:"stage"` request_id string `json:"requestid"` }
Je cherche un moyen de transmettre une instance message
à
msg := Message{ ... } zerolog.Dict("message", msg)
Vous pouvez utiliser la méthode Interface
pour y parvenir.
Mais veuillez noter que Interface
utilise la réflexion pour la sérialisation, donc le code court se fait au détriment des performances
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!