2017-08-04 61 views
0

我有一個用Node.js/Hapi編寫的REST API,我正在爲它添加日誌並將其集成到像Splunk這樣的集中日誌記錄服務。在不傳遞請求對象的情況下訪問Hapi請求標識?

我想什麼可以做的是寫一個簡單的日誌util的,這樣在代碼的任何地方我可以這樣做:

LoggingUtil.log('some message');

和LoggingUtil將能夠找出請求它與之相關並將其包含在實際記錄的消息中。這樣,當我搜索日誌時,請求ID將把所有與特定請求有關的日誌綁定在一起。

我對Node中的事件循環並不是非常熟悉,我該如何實現這一點。我發現的唯一可能的工作是tick-id

回答

0

我不確定你究竟是什麼意思,但我根據你是想要記錄所有的時間還是僅僅爲了調試給出2個建議。

  1. 記錄所有時間例如使用哈皮的生命週期方法

    server.ext('onRequest', (request, reply) => { 
    console.log(`\n++++++ ${request.raw.req.method} ${request.raw.req.url} ++++++\n`); 
    reply.continue(); 
    }); 
    

onRequest意味着每個有請求時,調用此函數。對於我而言,我使它記錄了請求方法和URL。您可以觀察請求對象以獲取所需的信息。

  • 記錄僅用於調試
  • 基本上相同的邏輯,通過該請求對象並訪問你從那裏需要的信息。

    在您的日誌功能中: log(request) { console.log(WHATEVER_YOU_NEED) }

    相關問題