1:  自定义日志文件.py----------几个文件需要创建日志,就需要重新定义几份

# 定义一个日志文件 创建一个操作日志对象logger 

file_1 = logging.FileHandler('text_1.log', 'a', encoding='utf-8')  # text_1.log 定义日志文件名 

fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s") # 定义创建时间,哪个文件,错误level,··
file_1 .setFormatter(fmt) # 建立执行 # 定义日志
logger1 = logging.Logger('s1', level=logging.ERROR) # 设置日志
logger1.addHandler(file_1 )

2:将定义好的定义日志导入需要存放报错的文件,并且使用traceback模块具体化报错地点:

# 导入模块
import logging
import traceback
# 导入定义好的日志变量
from Api.utils.自定义日志 import logger1 # 测试1:
def func():
try:
a = a + 1
except Exception as e:
msg = traceback.format_exc()
logger1.error(msg) func() #报错结果:(自动创建文件并且写入错误信息)
2019-11-26 14:25:10,196 - s1 - ERROR -logging2: Traceback (most recent call last):
File "C:/Users/user/Desktop/framework/django-rest-framework/Api/utils/logging2.py", line 17, in func
a = a + 1
UnboundLocalError: local variable 'a' referenced before assignment

3:直接定义logging(不推荐),需要创建多个日志文件:

import logging

# logging
logging.basicConfig(
filename='loggingdemo.txt', # 日志文件名
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S %p',
level=10
) logging.debug('None')
logging.info('None') # 正常的信息
logging.warning('None') # 警告(不出错)
logging.error('None') # 报错
logging.critical('None') # 非常严重的错误 # logging.log(10,'log') """
CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0
""" def func():
try:
a = a + 1
except Exception as e:
print(e)
logging.error(str(e))
func()

4:Django里指定任意日志文件位置:

# 取执行文件全局绝对路径(不管在哪里启动Django都会取到这个路径) 红色的字体表示自定义名称
path= os.path.abspath(os.path.dirname(__file__)) # 拼接路径
files_path = path + "/keywords_logging/文件名.log" # 路径+设定的日志文件名 # 设置日志
keyword_expect_debug = logging.FileHandler(files_path, 'a', encoding='utf-8')
fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s")
keyword_expect_debug.setFormatter(fmt) keyword_debug = logging.Logger('keyword_debug', level=logging.DEBUG)
keyword_debug.addHandler(keyword_expect_debug) # 定义文件日志
form 文件 import keyword_debug
try:
a = a + 1
except Exception as e:
msg = traceback.format_exc()
logging_main.keyword_debug.debug(msg)

【python小随笔】Django+错误日志(配置Django报错文件指定位置)的更多相关文章

  1. django 自定义日志配置

    如果不想使用 python 的 dictConfig 格式来配置 logger,可以制定自己的配置架构. LOGGING_CONFIG 配置定义了用来配置 django logger 的可调用函数,默 ...

  2. DJango错误日志生成

    DJango错误日志生成 setting.py设置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': ...

  3. Nginx 错误日志配置

    1.Nginx错误日志信息介绍: error_log的语法格式及参数说明: error_log      file         level; 关键字    日志文件   错误日志级别 其中,关键字 ...

  4. Django 自定义标签与过滤器报错 No module named 'templatetags'

    Django 自定义标签与过滤器报错 按照网上的教程如果想使用自定义的标签与过滤器就得往settings.py中添加下列数据 TEMPLATES = [ { 'BACKEND': 'django.te ...

  5. supervisor + celery 的简单配置与报错处理

    ubuntu服务器下使用 supervisor 和 celery supervisor 的卸载过程: sudo apt purge supervisor whereis supervisord如果有用 ...

  6. ubuntu 配置jdk报错解决办法

    vi /etc/profile ,添加如下代码 export JAVA_HOME=/home/mark/android/jdk1.8 export JRE_HOME=/home/mark/androi ...

  7. PHP配置Configure报错:Please reinstall the libzip distribution

    PHP配置Configure报错:Please reinstall the libzip distribution 发生情景: php执行配置命令configure时,报如下错误: checking ...

  8. Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"

    Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"     出现如图所示错误,处理办法如下 去nginx解压目录下执行 ./co ...

  9. linux配置docker报错:ImportError: No module named yum

    如题,安装docker后配置仓库报错: [root@centos ~]# yum-config-manager --add-repo https://download.docker.com/linux ...

随机推荐

  1. <每日一题>题目16:简单的python练习题(1-10)

    #1.python程序中__name__的作用是什么? __name__这个系统变量用来表示程序的运行方式. 如果程序在当前膜快运行,__name__的名称就是__main__, 如果不在(被调用), ...

  2. 【机器学习】机器学习入门08 - 聚类与聚类算法K-Means

    时间过得很快,这篇文章已经是机器学习入门系列的最后一篇了.短短八周的时间里,虽然对机器学习并没有太多应用和熟悉的机会,但对于机器学习一些基本概念已经差不多有了一个提纲挈领的了解,如分类和回归,损失函数 ...

  3. 如何给Apache Pig自定义UDF函数?

    近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,散仙本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)散仙一直没有接触过,所以只能临阵磨枪了,花了两天 ...

  4. Android SDK上手指南:应用程序发布

    Android SDK上手指南:应用程序发布 2013-12-26 15:47 核子可乐译 51CTO 字号:T | T 在今天的文章中,我们将重点探讨通过Google Play软件商店进行应用程序发 ...

  5. 《Python机器学习及实践:从零开始通往Kaggle竞赛之路》

    <Python 机器学习及实践–从零开始通往kaggle竞赛之路>很基础 主要介绍了Scikit-learn,顺带介绍了pandas.numpy.matplotlib.scipy. 本书代 ...

  6. [jeecms]获取父栏目下的子栏目名称

    [@cms_channel_list parentId='父栏目id'] [#list tag_list as c] <a href="${c.url}">${c.na ...

  7. 结构体的sort排序

    结构体用sort快排的方法 struct node{ int k,s; }p[]; bool cmp1(node x,node y){ return x.s>y.s; //定义降序排序(从大到小 ...

  8. JasperReport查看和打印报告7

    报表填充过程JasperPrint对象的输出可以使用内置的浏览器组件来查看,打印或导出到更多的流行的文件格式,如PDF,HTML,RTF,XLS,ODT,CSV或XML.Jasper文件查看和打印将包 ...

  9. Visual Studio 2013打开Orchard1.8.1版本源码,出现无法打开解决方法

    当使用Visual Studio打开项目时,如果遇到如上情况,可能是缓存问题,删除解决方案缓存(suo后缀文件)后重新打开sln解决方案即可,如下图

  10. Javascript-简单的欢迎cookie

    0<!DOCT0000YPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml&quo ...