日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

log4js 关于 Appender 的介绍及回滚生成日志文件的方法 “dateFile ”

發(fā)布時間:2024/3/26 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log4js 关于 Appender 的介绍及回滚生成日志文件的方法 “dateFile ” 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Log4js - Appenders

appender 將日志事件序列化為某種形式的輸出。可以寫文件,發(fā)送電子郵件,通過網(wǎng)絡發(fā)送數(shù)據(jù)。所有的 appender 都有一個 type 來決定哪個 appender 被使用。

例如:

const log4js = require('log4js'); log4js.configure({appenders: {out: { type: 'stdout' },app: { type: 'file', filename: 'application.log' }},categories: {default: { appenders: [ 'out', 'app' ], level: 'debug' }} });

上面代碼定義了兩個 appender,一個叫out,一個叫app。out使用 stdout appender 來編寫標準輸出。app使用 file appender 將日志寫進 application.log 文件中。

Core Appenders

下面的 appender 都是 log4js 支持的。

  • categoryFilter
  • console
  • dateFile
  • file
  • fileSync
  • logFaces-HTTP
  • logFaces-UDP
  • logLevelFilter
  • logstashHTTP
  • multiFile
  • multiprocess
  • recording
  • stderr
  • stdout
  • rabbitmq

有些需要額外的依賴項,而這些依賴項并不包含在log4js中(例如,smtp appender 需要 nodemailer),這些將在appender的文檔中注明。

dateFile / Date Rolling File Appender (日期滾動文件 appender)

這是一個 file appender,它基于一個可配置的時間來滾動日志文件。若使用 date file appender ,必須調(diào)用log4js.shutdown來確保應用程序終止時剩余異步寫是完成的。date file appender 使用 streamroller 庫,但該庫是 log4js 的一個依賴項,所以不需要自己包含它。

Configuration

  • type - "dateFile"
  • filename - string - 要寫入日志的文件路徑
  • pattern - string (可選, 默認模式為 .yyyy-MM-dd) - 當前日志文件被重命名并且創(chuàng)建了一個新的日志文件時,pattern用來決定重命名后的文件名格式。例如,假設當前要寫入日志的文件叫 cheese.log,使用默認 pattern:.yyyy-MM-dd,則一開始會創(chuàng)建一個日志文件名為 cheese.log,到第二天 cheese.log 會被重命名為 cheese.log.2017-04-30 并且一個新的日志文件名為 cheese.log 又會被創(chuàng)建。
    • appender 使用 date-format 庫來解析 pattern
    • 另外要注意,沒有計時器控制日志滾動,模式的變化是在每一個日志寫入中確定的。如果沒有寫操作,就不會發(fā)生日志滾動。如果您的應用程序不頻繁地記錄,那么就可能導致在特定的時間段內(nèi)沒有寫入日志文件。
  • layout - (可選, 默認為基礎布局) - 布局

其他的配置參數(shù)將會傳遞給底層 streamroller 實現(xiàn):

  • encoding - string (默認為“utf-8”)
  • mode- integer (默認為 0644)
  • flags - string (默認為 ‘a(chǎn)’)
  • compress - boolean (默認為 false) - 在滾動期間壓縮備份文件(備份文件將具有.gz擴展名)
  • alwaysIncludePattern - boolean (默認為 false) - 在當前日志文件的名稱和備份中包含模式。
  • daysToKeep - integer (默認為 0) - 如果這個值大于零,那么在日志滾動期間,將會刪除超過這段時間的文件。
  • keepFileExt - boolean (默認為 false) - 在改變?nèi)罩疚募麜r保留文件擴展名 (file.log 將會被改名為 file.2018-06-20.log 而不是 file.log.2018-06-20)

例子 (默認日志按天滾動)

log4js.configure({appenders: {everything: { type: 'dateFile', filename: 'all-the-logs.log' }},categories: {default: { appenders: [ 'everything' ], level: 'debug' }} });

上面這個樣例將會按天生成日志記錄文件。初始文件為 all-the-logs.log,過一天后文件會被重命名為 all-the-logs.log.2018-06-20。

例子(日志按小時滾動并且進行壓縮備份)

log4js.configure({appenders: {everything: { type: 'dateFile', filename: 'all-the-logs.log', pattern: '.yyyy-MM-dd-hh', compress: true }},categories: {default: { appenders: [ 'everything' ], level: 'debug'}} });

初始文件為 all-the-logs.log,這個文件每小時都會被壓縮并且被重命名為 all-the-logs.log.2018-06-20-10.gz,并且會重新生成一個文件 all-the-logs.log。

總結

以上是生活随笔為你收集整理的log4js 关于 Appender 的介绍及回滚生成日志文件的方法 “dateFile ”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。