【python小随笔】Django+错误日志(配置Django报错文件指定位置)
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报错文件指定位置)的更多相关文章
- django 自定义日志配置
如果不想使用 python 的 dictConfig 格式来配置 logger,可以制定自己的配置架构. LOGGING_CONFIG 配置定义了用来配置 django logger 的可调用函数,默 ...
- DJango错误日志生成
DJango错误日志生成 setting.py设置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': ...
- Nginx 错误日志配置
1.Nginx错误日志信息介绍: error_log的语法格式及参数说明: error_log file level; 关键字 日志文件 错误日志级别 其中,关键字 ...
- Django 自定义标签与过滤器报错 No module named 'templatetags'
Django 自定义标签与过滤器报错 按照网上的教程如果想使用自定义的标签与过滤器就得往settings.py中添加下列数据 TEMPLATES = [ { 'BACKEND': 'django.te ...
- supervisor + celery 的简单配置与报错处理
ubuntu服务器下使用 supervisor 和 celery supervisor 的卸载过程: sudo apt purge supervisor whereis supervisord如果有用 ...
- ubuntu 配置jdk报错解决办法
vi /etc/profile ,添加如下代码 export JAVA_HOME=/home/mark/android/jdk1.8 export JRE_HOME=/home/mark/androi ...
- PHP配置Configure报错:Please reinstall the libzip distribution
PHP配置Configure报错:Please reinstall the libzip distribution 发生情景: php执行配置命令configure时,报如下错误: checking ...
- Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"
Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl" 出现如图所示错误,处理办法如下 去nginx解压目录下执行 ./co ...
- linux配置docker报错:ImportError: No module named yum
如题,安装docker后配置仓库报错: [root@centos ~]# yum-config-manager --add-repo https://download.docker.com/linux ...
随机推荐
- 从0开始学习ssh之basedao
用于所有dao里边会有许多相同的方法,例如save,update等等.应此设计一个basedao,所有dao都继承它.这样可以省去许多工作量. basedao如下 package cn.itcast. ...
- JZOJ100048 【NOIP2017提高A组模拟7.14】紧急撤离
题目 题目大意 给你一个01矩阵,每次询问从一个点是否可以走到另一个点. 每次走只能往右或者往下. 思考历程 这题啊,我想的时候真的是脑洞大开-- 首先,我一眼看下去,既然要询问是否联通,那么能不能求 ...
- [编织消息框架][传输协议]sctp简单开发
jdk1.7支持sctp协议,需要linux安装sctp支持库 测试代码 public class ServerSCTP { static int SERVER_PORT = 3456; static ...
- Kafka在window上安装部署
1.准备工作 ①jdk 具体自行百度安装jdk,配置好 JAVA_HOME和path, 下载地址: http://www.oracle.com/technetwork/java/javase/ ...
- Spring注解驱动开发(二)-----生命周期、属性赋值
bean的生命周期 bean的生命周期:bean创建---初始化----销毁的过程容器管理bean的生命周期:我们可以自定义初始化和销毁方法:容器在bean进行到当前生命周期的时候来调用我们自定义的初 ...
- <form>(表单)标签和常用的类型
1.定义和用法 <form> 标签用于为用户输入创建 HTML 表单. 表单能够包含 input 元素,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含 menus.texta ...
- DVWA 之low级别sql注入
将Security level设为low,在左侧列表中选择“SQL Injection”,然后在右侧的“User ID”文本框中输入不同的数字就会显示相应的用户信息. 我们首先需要判断这里所传输的参数 ...
- linux命令统计文件中某个字符串出现的次数
1.使用grep linux grep命令在我的随笔linux分类里有过简单的介绍,这里就只简单的介绍下使用grep命令统计某个文件这某个字符串出现的次数,首先介绍grep命令的几个参数,详细参数请自 ...
- StopWatch 监控Java代码运行时间和分析性能
背景 有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间做进 ...
- Luogu P3953 逛公园(最短路+记忆化搜索)
P3953 逛公园 题面 题目描述 策策同学特别喜欢逛公园.公园可以看成一张 \(N\) 个点 \(M\) 条边构成的有向图,且没有自环和重边.其中 \(1\) 号点是公园的入口,\(N\) 号点是公 ...