解决pyqt5异常退出无提示信息的问题

问题:在pyqt界面运行中会异常退出,但是无出错代码追踪信息。

解决方法:

选中Emulate terminal in output console即可显示错误信息。

补充知识:python logging 日志 通过修饰器获取错误信息

今天公司要求研究一下python日志相关的信息,用户通过使用图形化界面产生错误后并不知道为什么报错。因此,要通过日志实现记录错误的功能。

import functools
import logging

def create_logger():
  logger = logging.getLogger("test_log")
  logger.setLevel(logging.INFO)
  fh = logging.FileHandler("test.log")
  fmt = "\n[%(asctime)s-%(name)s-%(levelname)s]: %(message)s"
  formatter = logging.Formatter(fmt)
  fh.setFormatter(formatter)
  logger.addHandler(fh)
  return logger

def log_exception(fn):
  @functools.wraps(fn)
  def wrapper(*args, **kwargs):

    logger = create_logger()
    try:
      fn(*args, **kwargs)
    except Exception as e:
      logger.exception("[Error in {}] msg: {}".format(__name__, str(e)))
      raise
  return wrapper

@log_exception
def tain(x):
  x=10
  def nat():
    print u
  nat()

tain(1)

运行它之后会生成一个test.log的日志文件,当报错时,会把错误记录起来。

以上这篇解决pyqt5异常退出无提示信息的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python 日志 logging模块详细解析

    Python 中的 logging 模块可以让你跟踪代码运行时的事件,当程序崩溃时可以查看日志并且发现是什么引发了错误.Log 信息有内置的层级--调试(debugging).信息(informational).警告(warnings).错误(error)和严重错误(critical).你也可以在 logging 中包含 traceback 信息.不管是小项目还是大项目,都推荐在 Python 程序中使用 logging.本文给大家介绍python 日志 logging模块 介绍. 1 基本使用

  • python3 配置logging日志类的操作

    配置类config_file: from configparser import ConfigParser class config_file: def __init__(self,conf_filePath,encoding="utf-8"): #打开配置文件,实例化ConfigParser类,并以默认utf-8的编码格式读取文件 self.cf = ConfigParser() self.cf.read(conf_filePath,encoding) def get_Int_Val

  • Python中内置的日志模块logging用法详解

    logging模块简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式. logging模块与log4j的机制是一样的,只是具体的实现细节不同.模块提供logger,handler,filter,formatter. logger:提供日志接口,供应用代码使用.logger最长用的操作有两类:配置和发

  • 解决pyqt5异常退出无提示信息的问题

    问题:在pyqt界面运行中会异常退出,但是无出错代码追踪信息. 解决方法: 选中Emulate terminal in output console即可显示错误信息. 补充知识:python logging 日志 通过修饰器获取错误信息 今天公司要求研究一下python日志相关的信息,用户通过使用图形化界面产生错误后并不知道为什么报错.因此,要通过日志实现记录错误的功能. import functools import logging def create_logger(): logger =

  • 快速解决pyqt5窗体关闭后子线程不同时退出的问题

    用pyqt5设计了一个主窗体,在窗体运行时需要把一个无限循环放在一个线程去工作.运行后,发现通过鼠标按主窗体的关闭按键关闭主创体后,线程不会自动终止,依然在运行.尽管对我的使用场景来说,这不是问题,因为立马就关机了.但在调试阶段就恨繁,因为后台线程很占资源.怎么能让主窗体关闭是子线程也退出呢?百度了许久,很多方法都不行. 主要试过的有: 1.设置:self.thread.Daemon=True 2.在子线程设置一个变量,通过改变变量的值使循环不满足条件,自动结束 3.设置析构函数 还有别的奇葩.

  • 一次因信号量引发的tomcat异常退出解决

    近期在玩大数据.有个朋友找过来,说他线上的tomcat会莫名其妙的退出,表示非常苦恼,请我帮看看.每次他发现退出了,都通过腾讯云的WEB控制台登录,启动tomcat. 本着助人为乐(shao kao hao chi)的精神,我连上去开始分析.首先肯定是看tomcat的日志,看看有没有记录到相关信息,是什么途径退出的. 从日志上看,tomcat收到了退出请求,并按照要求关闭容器.那么是否可以认为是有人执行了shutdown.sh呢?并不能.执行了shutdown脚本的关闭日志是这样的. 与其相关的

  • 浅谈CI脚本异常退出问题定位

    背景 在CI脚本中,使用类似如下脚本进行项目编译的计时,但在执行过程中,有时会出现CI脚本(命名为ci.sh)未完全执行的情况: #!/bin/bash -e sleep_time=$1 start_time=`date "+%s"` # do sth, this sleep would simulate project compilation sleep $sleep_time end_time=`date "+%s"` process_time=`expr \(

  • Android编程实现捕获程序异常退出时的错误log信息功能详解

    本文实例讲述了Android编程实现捕获程序异常退出时的错误log信息功能.分享给大家供大家参考,具体如下: 很多时候我们程序无缘无故的就挂掉了,让我们一头雾水,如果刚好我们在调试,那我们可以通过错误log来查看是什么原因引起的程序崩溃.但是当我们把程序发别人使用时,就没那么好运了,那我们要怎么样才能捕获到那个错误异常呢?还好Android给我们提供了UncaughtExceptionHandler 这个类,我们可以通过实现这个类的接口,来全局捕获那个让程序崩掉的错误log信息.可以将错误的lo

  • Java异常退出条件的判断示例代码

    无论是功能性代码还是算法性代码,程序都是一系列流程的合集 既然是流程就分为:一般流程和异常流程: 一般流程保证了基本功能: 异常流程则是对程序稳定性的保证,不能因为一些非法输入,项目就挂了: 注意,布尔表达式的先后顺序,有时不可以交换 if (null == instance || instance.isEmpty()) 0. 常见异常退出条件 参数为空: 表示长度,表示索引的整型为负数,或者超出待索引数组或容器的范围: 1. String 的 startsWith 函数 首先来看 String

  • 解决pyqt5中QToolButton无法使用的问题

    当你使用pyqt中的QToolButton的时候,如果想实现按下和抬起分别实现不同的功能,必须要加上这句话: self.btn_1.setCheckable(True) 设置一个toolbutton的基础代码为: self.btn_1 = QToolButton(self) self.btn_1.setText('start') self.btn_1.setCheckable(True) self.btn_1.clicked.connect(self.btn_1_function) def bt

  • 解决Android Studio 代码无提示无颜色区分问题

    一.问题 ①java代码没有颜色区分,统一黑色 ②代码不会联想提示,原来打前几个字母便会联想到后面的内容 二.解决 打开File,将Power save Mode的勾勾去掉 总结 以上所述是小编给大家介绍的解决Android Studio 代码无提示无颜色区分问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

  • 解决angular双向绑定无效果,ng-model不能正常显示的问题

    今天遇到了个问题,js代码中变量已经变化了,但是html页面中没有正常的显示出来. 代码如下: <input type="text" ng-model="paramValue" auto-focus> $scope.paramValue = param; 以上代码就会造成有时input框中无内容的情况,打断点显示$scope.paramValue是有值的,但是页面就是啥都显示不出来. 换成下边代码就没问题了: <input type="t

  • 解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects

    TypeError: cannot concatenate 'str' and 'int' objects print str + int 的时候就会这样了 python + 作为连接符的时候,不会自动给你把int转换成str 补充知识:TypeError: cannot concatenate 'str' and 'list' objects和Python读取和保存图片 运行程序时报错,然后我将list转化为str就好了. 利用''.join(list) 如果需要用逗号隔开,如1,2,3,4则

随机推荐