import logging
import traceback
logger = logging.getLogger(__name__)
logger.setLevel(level = logging.INFO)
handler = logging.FileHandler("log.txt")
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
#上面创建一个对象完毕
#我竟然在做脚本时候把他们全部分装到了print_ts中,每次打印都会写入多条重复的log信息。
logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")
logging.error(str(traceback.format_exc())) # 建议加入追踪
import logging
def logger_Info(logIndex="info",logPath='./log/run.log'):
# log初始化
logLevelList = {"info":logging.INFO,"debug":logging.DEBUG}
logLevel = logLevelList[logIndex]
logger = logging.getLogger("billType service")
logger.setLevel(level = logLevel)
if not logger.handlers: # 单例化
handler = logging.FileHandler(logPath)
handler.setLevel(logLevel)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
return logge
下面的用法来自:cnblogs
import os
import logging
import traceback
#设置log, 这里使用默认log
logging.basicConfig(
level=logging.INFO, #日志级别,只有日志级别大于等于设置级别的日志才会输出
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', #日志输出格式
datefmt='[%Y-%m_%d %H:%M:%S]', # 日期表示格式
filename=os.path.dirname(os.path.realpath(__file__)) + "/" + 'test.log', #输出定向的日志文件路径
filemode='a' #日志写模式,是否尾部添加还是覆盖
)
a=10
b=0 #设置为0, 走异常流程; 否则, 走正常流程
try:
res=a/b
logging.info("exec success, res:" + str(res))
except Exception,e:
#format_exc()返回异常信息字符串,print_exc()则直接给打印异常信息
traceback.print_exc()
logging.warning("exec failed, failed msg:" + traceback.format_exc())
上面的这段代码来自于博客:https://www.cnblogs.com/liujiacai/p/7804848.html
这里写了log日志的用法。
下面这段话来自于博客:https://blog.csdn.net/jingbaomm/article/details/83716504
Python的程序有两中退出方式:os._exit(), sys.exit()。本文介绍这两种方式的区别和选择。
os._exit()会直接将python程序终止,之后的所有代码都不会继续执行。
sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获此异常的代码,那么这些代码还是会执行。捕获这个异常可以做一些额外的清理工作。0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。