亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Django多進(jìn)程滾動日志問題解決方案

 更新時間:2019年12月17日 10:39:11   作者:luozx207  
這篇文章主要介紹了Django多進(jìn)程滾動日志問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Django多進(jìn)程滾動日志問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

使用RotatingFileHandler控制日志文件的大小

# settings.py
LOGGING = {
  ...
  'handlers': {
    ...
    'file': {
      'level': 'INFO',
      'class': 'logging.RotatingFileHandler',
      'filename': os.path.join(LOGS_DIR, 'app.log'),
      'formatter': 'verbose',
      'maxBytes': 1024,
      'backupCount': 5
    },
    ...
  }
  ...
}

設(shè)置RotatingFileHandler的maxBytes與backupCount,這兩個參數(shù)默認(rèn)是0。

當(dāng)兩個參數(shù)都不為0時,會執(zhí)行rallover過程:log文件大小接近maxBytes時,新建一個文件作為log的輸出,舊的文件會被加上類似'.1'、'.2'的后綴。

舉個例子,如果backupCount=5,log file定義的名字為app.log,你會得到app.log, app.log.1, app.log.2 一直到 app.log.5。

然而被寫入日志的永遠(yuǎn)是app.log,寫滿了之后重命名為app.log.1,如果app.log.1存在,app.log.1會先被重名名為app.log.2,依此類推。

另外,如果app.log.5存在,它會被刪除。

windows環(huán)境遇到的問題

PermissionError: [WinError 32] 另一個程序正在使用此文件,進(jìn)程無法訪問。

首先,Django默認(rèn)啟用兩個進(jìn)程,一個進(jìn)程用來檢測文件變化,另一個進(jìn)程是正經(jīng)的服務(wù)器進(jìn)程。settting.py這個文件被加載了兩次,也就是日志文件打開了兩次,如果是服務(wù)器進(jìn)程先啟動,則看不出毛病來;如果是監(jiān)控進(jìn)程首先打開了從settings.py加載了日志,那么正經(jīng)服務(wù)器進(jìn)程就無法再次加載日志了。

如果你的Django項目是單進(jìn)程的,那么在啟動Django項目的時候使用--noreload就可以解決

python manage.py runserver 0.0.0.0:80 --noreload

noreload表示不啟動Django的監(jiān)控進(jìn)程,也就是說項目代碼的改變不再會影響已經(jīng)載入內(nèi)存中的代碼,這樣,Django就只會起一個進(jìn)程。

但是,如果你的項目是多進(jìn)程的,或者在某些單獨的模塊,比如celery中為了使用Django的ORM而使用了django.setup()

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
import django
django.setup()

那么就需要用另一個日志模塊解決

pip install concurrent-log-handler

在LOGGING中,用concurrent_log_handler.ConcurrentRotatingFileHandler代替logging.RotatingFileHandler

# settings.py
LOGGING = {
  ...
  'handlers': {
    ...
    'file': {
      'level': 'INFO',
      'class': 'concurrent_log_handler.ConcurrentRotatingFileHandler',
      'filename': os.path.join(LOGS_DIR, 'app.log'),
      'formatter': 'verbose',
      'maxBytes': 1024,
      'backupCount': 5
    },
    ...
  }
  ...
}

測試一下,問題解決

另外,如果是linux系統(tǒng)下的多進(jìn)程Django,可以用ConcurrentLogHandler模塊

pip install ConcurrentLogHandler
# settings.py
LOGGING = {
  ...
  'handlers': {
    ...
    'file': {
      'level': 'INFO',
      'class': 'cloghandler.ConcurrentRotatingFileHandler',
      'filename': os.path.join(LOGS_DIR, 'app.log'),
      'formatter': 'verbose',
      'maxBytes': 1024,
      'backupCount': 5
    },
    ...
  }
  ...
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python?if?判斷語句詳解

    Python?if?判斷語句詳解

    這篇文章主要介紹了Python?if?判斷語句,包括流程控制,順序結(jié)構(gòu)和分支結(jié)構(gòu),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • 深入理解Python虛擬機(jī)之進(jìn)程、線程和協(xié)程區(qū)別詳解

    深入理解Python虛擬機(jī)之進(jìn)程、線程和協(xié)程區(qū)別詳解

    在本篇文章當(dāng)中深入分析在 Python 當(dāng)中 進(jìn)程、線程和協(xié)程的區(qū)別,這三個概念會讓人非常迷惑,如果沒有深入了解這三者的實現(xiàn)原理,只是看一些文字說明,也很難理解,在本篇文章當(dāng)中我們將通過分析部分源代碼來詳細(xì)分析一下這三者根本的區(qū)別是什么,需要的朋友可以參考下
    2023-10-10
  • Python 相對路徑報錯:"No such file or directory"'原因及解決方法

    Python 相對路徑報錯:"No such file or 

    如果你取相對路徑不是在主文件里,可能就會有相對路徑問題:"No such file or directory",由于python 的相對路徑,相對的都是主文件所以會出現(xiàn)Python 相對路徑報錯,今天小編給大家?guī)砹送昝澜鉀Q方案,感興趣的朋友一起看看吧
    2023-02-02
  • python實現(xiàn)微信打飛機(jī)游戲

    python實現(xiàn)微信打飛機(jī)游戲

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)微信打飛機(jī)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 理解Python中的類與實例

    理解Python中的類與實例

    這篇文章主要介紹了Python中的類與實例,類與實例的概念是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-04-04
  • python一鍵去抖音視頻水印工具

    python一鍵去抖音視頻水印工具

    抖音越來越火,越刷越上癮,總感覺下一個視頻一定會更精彩,根本停不下來。想將抖音里喜歡的小哥哥/小姐姐的視頻全部存到電腦硬盤里,還沒有抖音的視頻水印,跟著小編來看看吧
    2018-09-09
  • 基于Django的樂觀鎖與悲觀鎖解決訂單并發(fā)問題詳解

    基于Django的樂觀鎖與悲觀鎖解決訂單并發(fā)問題詳解

    這篇文章主要介紹了基于Django的樂觀鎖與悲觀鎖解決訂單并發(fā)問題詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 用Python的urllib庫提交WEB表單

    用Python的urllib庫提交WEB表單

    上次實現(xiàn)的校園網(wǎng)IP網(wǎng)關(guān)登錄器其中一個關(guān)鍵部分就是提交登錄網(wǎng)頁的表單,下面是我的Python實現(xiàn)代碼
    2009-02-02
  • Python matplotlib實時畫圖案例

    Python matplotlib實時畫圖案例

    這篇文章主要介紹了Python matplotlib實時畫圖案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python使用scrapy爬取陽光熱線問政平臺過程解析

    Python使用scrapy爬取陽光熱線問政平臺過程解析

    這篇文章主要介紹了Python使用scrapy爬取陽光熱線問政平臺過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08

最新評論