成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

nodejs 日志插件比較 VS 自定義日志插件

沈建明 / 1935人閱讀

摘要:然后把放進(jìn)去在中在后添加一句日志文件會自動生成在文件夾下面,當(dāng)天的日志會保存在暫存的里時間請求方式響應(yīng)狀態(tài)碼響應(yīng)時長請求路徑

morgan

【優(yōu)點】morgan配置非常簡單

【優(yōu)點】支持自定義日志格式

【優(yōu)點】支持日志分機

【優(yōu)點】支持日志壓縮:使用rotating-file-stream

【缺點】無法同時往console和文件中寫日志

log4js-node

【優(yōu)點】配置簡單

【優(yōu)點】支持同時往控制臺和文件中寫數(shù)據(jù)

【優(yōu)點】支持按照時間或文件大小分割文件

【優(yōu)點】支持文件壓縮

"use strict";
var path = require("path")
, log4js = require("../lib/log4js");

log4js.configure(
  {
    appenders: [
      {
        type: "file",
        filename: "important-things.log",
        maxLogSize: 10*1024*1024, // = 10Mb
        numBackups: 5, // keep five backup files
        compress: true, // compress the backups
        encoding: "utf-8",
        mode: parseInt("0640", 8),
        flags: "w+"
      },
      {
        type: "dateFile",
        filename: "more-important-things.log",
        pattern: "yyyy-MM-dd-hh",
        compress: true
      },
      {
        type: "stdout"
      }
    ]
  }
);

var logger = log4js.getLogger("things");
logger.debug("This little thing went to market");
logger.info("This little thing stayed at home");
logger.error("This little thing had roast beef");
logger.fatal("This little thing had none");
logger.trace("and this little thing went wee, wee, wee, all the way home.");
winston

沒用過,不做評論

fluent-logger-node

往fluntd中寫日志,沒用過

express-winston

沒用過

如何自定義一個日志插件

可以自定義日志結(jié)構(gòu)

日志文件可以用gzip壓縮

不影響往console寫日志

可以按時間分割日志

支持日志覆蓋,最多保留1個月的備份

使用rotating-file-stream

var path = require("path");
var fs = require("fs");
var rfs = require("rotating-file-stream");

var logDirectory = __dirname;

function Wpad(num) {
    return (num > 9 ? "" : "0") + num;
}


/**
 * [Wgenerator 創(chuàng)建文件名函數(shù)]
 * @Author   Wdd
 * @DateTime 2017-02-22T10:13:39+0800
 * 日志會保留一個月的:因為日志文件名是只使用日期,9月8號的日志就會覆蓋8月8號的日志
 * 文件的格式是gzip
 * 文件名例如:22-log.gizp
 */
function Wgenerator(time, index) {
    if(! time){
        return "temp-log.txt.gzip";
    }

    return "/storage/"+ Wpad(time.getDate()) +"-log.txt.gzip";
}

var accessLogStream = rfs(Wgenerator, {
    interval: "1d", // 周期為1天
    path: logDirectory,
    compress: "gzip" ,
    rotationTime:true
});

/**
 * [exports description]
 * @Author   Wdd
 * @DateTime 2017-02-22T10:24:06+0800
 * 使用方式:
 * 1. 安裝rotating-file-stream
 * 2. 在根目錄下創(chuàng)建一個文件夾,例如logs。然后把access-log.js放進(jìn)去
 * 3. 在app.js中var mylog = require("./logs/access-log");
 * 4. 在app = express(); 后添加一句 app.use(mylog);
 * 5. 日志文件會自動生成在./logs/storage文件夾下面,當(dāng)天的日志會保存在暫存的./logs/temp-log.gzip里
 */
module.exports = function(req, res, next){

    req._startTime = new Date();

    res.once("finish", function(){

        var msg = "";
        //hostname
        msg = process.env.hostname+" ";

        // 時間
        msg += new Date()+" ";

        // 請求方式
        msg += req.method+" ";

        // 響應(yīng)狀態(tài)碼
        msg += res.statusCode+" ";

        // sessionId
        msg += req.headers.sessionid+" ";

        // 響應(yīng)時長
        msg += new Date() - req._startTime ;

        // 請求路徑
        msg += " " + req.originalUrl +"


";

        accessLogStream.write(msg);
    });

    next();
};

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81656.html

相關(guān)文章

  • 基于Egg框架的日志鏈路追蹤實踐分享

    摘要:項目擴(kuò)展自定義日志中間件封裝好之后,在實際項目應(yīng)用中我們還需要一步操作,提供了框架擴(kuò)展功能,包含五項,可以對這幾項進(jìn)行自定義擴(kuò)展,對于日志因為每次日志記錄我們需要記錄當(dāng)前請求攜帶的做一個鏈路追蹤,需要用到是的請求上下文擴(kuò)展項。 快速導(dǎo)航 [Logger-Custom] 需求背景 [Logger-Custom] 自定義日志插件開發(fā) [Logger-Custom] 項目擴(kuò)展 ...

    EscapedDog 評論0 收藏0
  • 一些你所不知道的VS Code插件

    摘要:摘要你所不知道的系列。允許你寫入縮寫代碼并返回的相應(yīng)標(biāo)記,目前已經(jīng)內(nèi)置,所以不用配置了。自從年雙十一正式上線,累計處理了億錯誤事件,付費客戶有金山軟件百姓網(wǎng)等眾多品牌企業(yè)。摘要: 你所不知道的系列。 原文:提高 JavaScript 開發(fā)效率的高級 VSCode 擴(kuò)展之二! 作者:前端小智 Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有。 作為一名業(yè)余愛好者、專業(yè)人員,甚至是每月只有一次編...

    Near_Li 評論0 收藏0
  • 關(guān)于k8s集群容器日志收集的總結(jié)

    摘要:我推薦你使用進(jìn)行日志收集,將作為的出口。集群目前暫時沒有提供日志查看機制。以如下的形式啟動容器,容器日志將發(fā)往配置的。 【作者barnett】本文介紹了k8s官方提供的日志收集方法,并介紹了Fluentd日志收集器并與其他產(chǎn)品做了比較。最后介紹了好雨云幫如何對k8s進(jìn)行改造并使用ZeroMQ以消息的形式將日志傳輸?shù)浇y(tǒng)一的日志處理中心。 容器日志存在形式 目前容器日志有兩種輸出形式: ...

    jeffrey_up 評論0 收藏0

發(fā)表評論

0條評論

沈建明

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<