最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

使用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項(xiàng)目是單進(jìn)程的,那么在啟動Django項(xiàng)目的時候使用--noreload就可以解決

python manage.py runserver 0.0.0.0:80 --noreload

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

但是,如果你的項(xiàng)目是多進(jìn)程的,或者在某些單獨(dú)的模塊,比如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爬蟲之生活常識解答機(jī)器人

    python爬蟲之生活常識解答機(jī)器人

    這篇文章主要介紹了python爬蟲之生活常識解答機(jī)器人,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)之間的區(qū)別和聯(lián)系

    機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)之間的區(qū)別和聯(lián)系

    機(jī)器學(xué)習(xí)>神經(jīng)網(wǎng)絡(luò)>深度學(xué)習(xí)≈深度神經(jīng)網(wǎng)絡(luò),機(jī)器學(xué)習(xí)包括了神經(jīng)網(wǎng)絡(luò)在內(nèi)的許多算法,而神經(jīng)網(wǎng)絡(luò)又可以分為淺度神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)是使用了深度神經(jīng)網(wǎng)絡(luò)的技術(shù),雖然機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)是不同的,但在構(gòu)建復(fù)雜系統(tǒng)時,許多相關(guān)概念是混合在一起的
    2024-02-02
  • 詳解如何使用Pandas刪除DataFrame中的非數(shù)字類型數(shù)據(jù)

    詳解如何使用Pandas刪除DataFrame中的非數(shù)字類型數(shù)據(jù)

    在數(shù)據(jù)處理和分析過程中,經(jīng)常會遇到需要清洗數(shù)據(jù)的情況,本文將詳細(xì)介紹如何使用Pandas刪除DataFrame中的非數(shù)字類型數(shù)據(jù),感興趣的小伙伴可以了解下
    2024-03-03
  • python如何把嵌套列表轉(zhuǎn)變成普通列表

    python如何把嵌套列表轉(zhuǎn)變成普通列表

    這篇文章主要為大家詳細(xì)介紹了python如何把嵌套列表轉(zhuǎn)變成普通列表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python爬蟲實(shí)戰(zhàn)之使用Scrapy爬取豆瓣圖片

    Python爬蟲實(shí)戰(zhàn)之使用Scrapy爬取豆瓣圖片

    在用Python的urllib和BeautifulSoup寫過了很多爬蟲之后,本人決定嘗試著名的Python爬蟲框架——Scrapy.本次分享將詳細(xì)講述如何利用Scrapy來下載豆瓣名人圖片,需要的朋友可以參考下
    2021-06-06
  • Python+request+unittest實(shí)現(xiàn)接口測試框架集成實(shí)例

    Python+request+unittest實(shí)現(xiàn)接口測試框架集成實(shí)例

    這篇文章主要介紹了Python+request+unittest實(shí)現(xiàn)接口測試框架集成實(shí)例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Python疫情確診折線圖實(shí)現(xiàn)數(shù)據(jù)可視化實(shí)例詳解

    Python疫情確診折線圖實(shí)現(xiàn)數(shù)據(jù)可視化實(shí)例詳解

    數(shù)據(jù)可視化是指用圖形或表格的方式來呈現(xiàn)數(shù)據(jù)。圖表能夠清楚地呈現(xiàn)數(shù)據(jù)性質(zhì),?以及數(shù)據(jù)間或?qū)傩蚤g的關(guān)系,可以輕易地讓人看圖釋義。用戶通過探索圖(Exploratory?Graph)可以了解數(shù)據(jù)的特性、尋找數(shù)據(jù)的趨勢、降低數(shù)據(jù)的理解門檻
    2022-09-09
  • Python time模塊詳解(常用函數(shù)實(shí)例講解,非常好)

    Python time模塊詳解(常用函數(shù)實(shí)例講解,非常好)

    在平常的代碼中,我們常常需要與時間打交道。在Python中,與時間處理有關(guān)的模塊就包括:time,datetime以及calendar。這篇文章,主要講解time模塊。
    2014-04-04
  • Python簡單計(jì)算給定某一年的某一天是星期幾示例

    Python簡單計(jì)算給定某一年的某一天是星期幾示例

    這篇文章主要介紹了Python簡單計(jì)算給定某一年的某一天是星期幾,涉及Python基于蔡勒公式的簡單日期數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • python根據(jù)時間獲取周數(shù)代碼實(shí)例

    python根據(jù)時間獲取周數(shù)代碼實(shí)例

    這篇文章主要介紹了python根據(jù)時間獲取周數(shù),通過周數(shù)獲取時間代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評論

西乌珠穆沁旗| 兰溪市| 绩溪县| 富源县| 鄢陵县| 丰城市| 通许县| 竹溪县| 桦南县| 洛浦县| 伊宁县| 商南县| 横峰县| 岳阳市| 定陶县| 肥西县| 平湖市| 贵南县| 太保市| 延长县| 即墨市| 永宁县| 德阳市| 汉寿县| 资讯 | 陈巴尔虎旗| 日土县| 商南县| 栾城县| 西峡县| 天镇县| 沂源县| 蕉岭县| 富阳市| 惠州市| 南江县| 观塘区| 塔城市| 固原市| 张北县| 琼中|