在django中使用logging模块

Django框架 - 13 日志Logging模块使用 日志使用 前言 在django中对日志记录提供了很好的支持,日志文件在开发环境中以及在线上环境或者在测试环境中都可以很好的反应程序的执行情况,以及出现bug的时候,准确的定位bug的位置,请求方法,错误原因等。所以说日志对于程序猿来说是一个开发者必备的必须了解且精通的东西。以下是对日志的配置以及使用,以及调试等 1. 日志logging模块 logging模块可以收集记录错误,警... 阅读详情

logging是Python 2.3起自带的标准模块,可以用来从运行状态的程序中记录日志。logging模块的功能非常强大,可以非常灵活的向各种预定或者自定的目标输出日志。而利用标准的logging模块,Django程序就可以轻松实现运行环境下的日志输出,这对于开发以及部署环境下程序运行具体情况的监控和调试都是不可或缺的,所以我在这里总结一下自己的一些经验。


Django程序使用logging输出的基本设置

要让Django程序正确得利用logging模块输出日志,首先需要在settings.py中配置好logging参数:
loggin.basicConfig(
level = logging.DEBUG,
format = '%(asctiome)s %(levelname)s %(module)s.%(funcName)s Line:%(lineno)d%(message)s',
)
logging.basicConfig是logging模块提供的简便配置logging参数的方法。经过以上的配置,在Django程序中只需要通过logging.debug,logging.info等方法就可以输出日志了。logging.DEBUG及以上级别的日志都会直接输出到django运行时当前命令窗口,而在生产环境下,只需要相应的提高logging输出级别就可以控制日志输出的内容,避免输出过多日志内容。(关于logging级别和logging的基本知识请参考pydoc) 在本地调试使用manage.py runserver的时候,logging内容就会直接出现在console里。

输出日志到文件

以上的基本设置只能让日志直接输出到命令行窗口。需要把日志输出到文件保存的话最简便的方法是这样
logging.basicConfig(
level = logging.DEBUG,
format = '%(asctiome)s %(levelname)s %(module)s.%(funcName)s Line:%(lineno)d%(message)s',
filename = '/path/to/logfile/filelog.log',
)
在logging.basicConfig方法中,只要指定了filename,那么日志就会直接输出到指定的文件了。

按日期循环保存日志文件

在生产环境下,不仅需要把日志写到文件,通常还需要把日志文件按日期分割保存。这样的任务用logging模块也很容易做到。在生产环境的settings.py里使用如下设置:
root = logging.getLogger()
if len(root.handlers) == 0 #避免重复
level = logging.INFO
filename = '/path/to/logfile/filelog.log'
format = '%(asctiome)s %(levelname)s %(module)s.%(funcName)s Line:%(lineno)d%(message)s'
hdlr = TimedRotatingFileHandler(filename,"midnight",1,5)
fmt = Formatter(format)
hdlr.setFormatter(fmt)
root.addHandler(hdlr)
root.setLevel(level)
在这里使用了logging模块预定义的TimedRotatingFileHandler类,在每天半夜滚动日志文件,而最多保留5个以往的日志文件。由于需要指定特殊的Handler,所以这里不能使用logging.basicConfig的简便方法。

使用logging模块的更多好处

用好日志功能可以对开发和调试起到很多帮助作用。使用了logging模块可以通过日志级别非常方便的控制输出,不需要增减任何程序代码,只需要在settings.py中更改logging级别一行代码就行了。所以在开发过程中,可以尽量多用logging.debug输出对调试有帮助的内容。而在生产环境下,通过日志也可以方便的分析真实运行环境下的一些问题,便于调试修改bug。

如果用在Google App Engine,不需要指定输出文件,程序输出的日志都会直接保存在App Engine运行日志中,还可以通过正则表达式来搜索以往日志。

另外,通过Django debug toolbar,可以方便的直接在调试环境下直接在每个页面上查看输出的日志,非常好用。

所以,如果你在写Django程序,就不要再用原始的print了,用好logging可以事半功倍。

Django使用logging模块记录日志 logging模块Python内置的标准模块,主要用于输出日志信息,可以设置输出日志的等级、日志保存路径等信息。 日志的作用 日志主要有三种作用: 问题跟踪 通过日志文件,在程序安装或者运行过程中出现的问题,会进行记录,以便技术人员进行问题排查。如果没有日志文件,问题将会难以进行判断。 状态监控 通过对日志进行实时分析,可以监控运行状态,以便出现问题时可以尽早发现。 安全审计 主要用... 阅读详情

相关推荐

笔记——Oracle19c

Oracle阅读笔记

weixin_63819458的博客 1319

Django使用Logging

原文地址:http://www.smallerpig.com/1022.html?utm_source=tuicool&utm_medium=referral 前言 我们在编写程序过程中,很难免的会出现一些问题,程序并非按照我们预想的那样运行,这个时候我们通常会对程序进行调试,来看看到底是哪边出了问题。而程序日志是来帮助我们记录程序运行过程的帮手,善用日志的程序员也就能很快找出

巫山云的专栏 1543

超详细 | 贝叶斯网络基础——有图有真相

Hello,大家好,我是starz。这是本系列的第二篇《概率基础Ⅱ》,虽说是概率基础,但作为过渡,它开始以图为载体 这节的主要内容有: 贝叶斯网络 三种结构 D-划分 贝叶斯球 马尔科夫毯 应用例子 总结 让我们开始吧 :3 贝叶斯网络 概率图模型可笼统分为两类,一是基于无向图的马尔科夫网络: 二是基于有向图的贝叶斯...

qq_41603411的博客 2万+

[野路数] Django使用logging

我对服务器端app的开发还是没有入门的阶段,但是那啥,还是保持热情不是,于是乎今天特别想给自己的使用Django的程序里加上日志(logging)。原因很简单,就是因为希望在Django提供的Debug页面的基础上,能够输出一些额外信息出来,也就是传说中的 printf 啦。。。 对了,其实我不太会用Python的各种高级的系统,比如logging system。。。比如logger,

风海流的豪赌 362

django使用logging

django中似乎没有专门支持loggingmodule。想在自己开发程序中使用一下log功能,记录访问情况,和输入debug的一些信息。于是google到一段代码,使用python的标准库logging,目前工作还算正常. [url]http://djangosnippets.org/snippets/16/[/url] [code="python"] import loggi...

Healich 221

logging日志的使用

说到日志,无论是开发写代码还是写UI自动化测试,都离不开日志的记录,它能给我们在定位问题、缺陷时带来很大的方便。通常测试人员使用最多的方法就是用print来打印出日志和报错信息,但是对于一些项目比较大的项目,使用print就不是那么方便了。因为print打印出来的日志没有时间,不知道日志记录的位置,针对这种情况,我们可以使用python自带的logging模块,可以很好地解决上面问题。...

sl01224318的博客 5304

Python模块logging 日志模块

Python 提供内置的日志模块 logging,从不同角度讨论日志的设置(基于basicConfig方法、基于Handler、基于配置文件等),重要的组件总结及记录异常日志。

小确幸的博客 3997

Django使用logging模块

Django使用logging模块 在web应用中记录页面访问情况,在jsp里有filter, 在Django里有middleware。 下面的例子就是在中间件里记录页面访问情况。   settings.py   # Django settings for testsite project. import logging DEBUG = True # DEBUG = Fa...

summerbell 166

django中日志模块logging的配置和使用

djangologging的配置以及使用

一个持续学习的小趴菜。 1272

Djangologging-日志模块的简单使用方法

Djangologging-日志模板的简单使用方法(配置并使用根日志记录器-不显示实例化logging对象)

昊虹AI笔记 1002

Django 使用 logging 模块的一次记录

起因 偶尔浏览 Stack overflow 看到有人提出的关于日志记录的问题,比较感兴趣就尝试了一下,问题截图如下: 意思是他想把不同的日志等级分别记录在不同的文件中,比如 INFO 和 ERROR 分别记录到 info.log 以及 error.log 文件中,然而经过上图的尝试发现只有 ERROR 级别的错误记录到 error.log 的文件中了,而 INFO 级别的却没有记录,有一条...

Ginta的博客 350

Django使用 logging 模块记录系统日志

Logging 原文地址:https://docs.djangoproject.com/en/dev/topics/logging/ A quick logging primer Django uses Python’s builtin logging module to perform system logging.The usage of this module is d

技术是条不归路 2万+

Django简易测试平台四:使用logging模块

1、在setting中配置信息 BASE_LOG_DIR = os.path.join('/Users/administrator/liuke/API/log/', "log") LOGGING = { 'version': 1, 'disable_existing_loggers': False,#此选项开启表示禁用部分日志,不建议设置为True 'formatters': { ...

qq_19501361的博客 250

logging 模块django日志记录以及项目中的使用

项目日志的配置组成!(官方文档) Loggers 日志系统的入口,每个日志信息都会写入其中!并且规定了日志等级(每条消息都有)向记录器发出消息时,会将消息的日志级别与记录器的日志级别进行比较。如果邮件的日志级别达到或超过记录器本身的日志级别,则邮件将进行进一步处理 Handlers 确定记录器中每条消息发生情况的引擎。它描述了特定的日志记录行为,例如将消息写入屏幕,文件或网络...

163

modelform和django中的logging模块使用

内容回顾:   内容回顾 1. 同源策略 1. 什么叫同源策略 1. 一个源的定义 协议+IP(域名)+端口一致,就是同一个源。 2. 同源策略限制了脚本(js)跨网站发请求,能发请求但是拿不到响应 3. 不受同源策略限制的 1. a标签、重定向、fo...

weixin_30800987的博客 99

python django日志的配置及使用

Django使用python自带的logging 作为日志打印工具。简单介绍下logginglogging 是线程安全的,其主要由4部分组成: Logger 用户使用的直接接口,将日志传递给Handler Handler 控制日志输出到哪里,console,file… 一个logger可以有多个Handler Filter 控制哪些日志可以从logger流向Handler Form...

mr~li的博客 1868

Django pycharm 日志模块logging提示另一个程序正在使用此文件,进程无法访问

这是导致无法生成后续日志的原因所在,那么,有没有办法解决呢?启动后,logging错误消失。

superwx1985的博客 863

python模块logging_no handler could be found for root python

这个模块为应用与库实现了灵活的事件日志系统的函数与类。使用标准库提提供的 logging API 最主要的好处是,所有的 Python 模块都可能参与日志输出,包括你自己的日志消息和第三方模块的日志消息。这个模块提供许多强大而灵活的功能。如果你对 logging 不太熟悉的话, 掌握它最好的方式就是查看它对应的教程(详见右侧的链接)。该模块定义的基础类和函数都列在下面。记录器暴露了应用程序代码直接使用的接口。处理器将日志记录(由记录器创建)发送到适当的目标。

2401_84561736的博客 918

农作物叶子健康与疾病实例分割数据集-20251117-000906.zip

农作物叶子健康与疾病实例分割数据集一、基础信息数据集名称:农作物叶子健康与疾病实例分割数据集图片数量:- 训练集:7,446张图片- 验证集:970张图片- 测试集:182张图片- 总计:8,598张图片分类类别:- Apple Healthy(健康苹果叶)- Apple Rust Leaf(苹果锈病叶)- Apple Scab Leaf(苹果黑星病叶)- BellPepper Healthy(健康甜椒叶)- BellPepper Leaf Spot(甜椒叶斑病)- Corn Gray Leaf Spot(玉米灰斑病)- Corn Leaf Blight(玉米叶枯病)- Corn Rust Leaf(玉米锈病叶)- Grape Black Rot(葡萄黑腐病)- Grape Healthy(健康葡萄叶)- Squash Powdery Leaf(南瓜白粉病叶)- Tomato Bacterial Spot(番茄细菌性斑点病)- Tomato Healthy(健康番茄叶)- Tomato Septoria(番茄斑枯病)标注格式:YOLO格式,包含实例分割的多边形标注,适用于实例分割任务。数据格式:图片来源于农业图像数据库,细节清晰。二、适用场景农业植物疾病AI检测系统开发:数据集支持实例分割任务,帮助构建能够自动识别植物叶子疾病区域并分类的AI模型,辅助农民快速诊断和治理。精准农业应用研发:集成至农业智能管理系统中,提供实时疾病识别功能,为农作物健康管理提供决策支持。学术研究与创新:支持农业科学与人工智能交叉领域的研究,助力发表高水平农业AI论文。农业教育与培训:数据集可用于农业院校或培训机构,作为学生学习植物疾病分类和诊断的重要资源。三、数据集优势精准标注与多样性:每张图片均经过准确标注,确保疾病区域分割精确。包

上一篇: django的分页机制
下一篇: Django需要注意的10个要点
Java2King
博客等级 码龄18年 221粉丝 77原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值