Hogyan kell írni a log ()

[System info] [üzenet] [keretében]

ahol:
  • rendszer info. időbélyeg, folyamat id, id flow és egyéb szolgáltatások
  • üzenetet. szöveges üzenetek
  • összefüggésben. minden további információt, összefüggésben lehet a közös üzenetek, hogy mi működik.

Annak érdekében, hogy összekapcsolja a két kérelmet \ választ a gyakran használt http header X-Request-ID. Egy ilyen fejléc generálhat a kliens, vagy lehet generálni a szerver oldalon. Add, hogy az összefüggésben az egyes sorokból képes lesz megtalálni egy kis kézmozdulat összes üzenet, hogy történt a teljesítményét egy adott lekérdezés. És abban az esetben, elosztott rendszerek, a fejléc öröklődött a lánc hálózatba irányuló hívások.
De egyetlen összefüggésben a kérés egy probléma különböző ORM, http ügyfelek vagy egyéb szolgáltatások \ könyvtárak élni az életüket. És még jó, ha biztosítja a képességét, hogy felülírja a szabványos naplózó legalább globálisan, hanem a kontextust az adatgyűjtő, mint a kérés részeként gyakran nem reális. Ez a probléma elsősorban releváns többszálú feldolgozást, amikor a folyamat szolgál kérelmek száma. De például a Rails freymvorke van nagyon szoros integrációjának összes alkatrészt ActiveRecord lekérdezést lehet írni a naplót együtt a globális összefüggésben a jelenlegi hálózati kérésre. És néhány nyelven Go fakitermelés könyvtárak segítségével dinamikusan létrehoz egy új naplózó objektumot a megfelelő kontextusban, ez így néz ki:

reqLog: = log.WithField ( "requestID", requestID)

Ezt követően, egy példányt a logger átvihető a függőség más projektekben. De hiányzik az egységes felületet fakitermelés (például mt-3 php) provokálja alkotók könyvtárak égetve malosovmestimymi végrehajtás logger. Ezért, ha írsz a könyvtár lépés, és van egy naplózó komponens, biztos, hogy felületet biztosítanak a felhasználó számára, hogy cserélje ki a logger.

Kapcsolódó cikkek