如何创建日志文件来记录 python 中的每个步骤?
How can a create a log file to log every steps in python?
我是 运行 一个 python 脚本,我想记录 python 程序的每个步骤。
例如,假设我有一个程序
def main()
if do:
do the work
if yes:
do the work
for list os.listdir(dir):
sys.system("python " + dirOfPython + " " + dirOflists)
我想记录我的程序在哪里..以及它们当前正在做什么。
在我的日志中我想要类似
的东西
Inside of main()
inside of if do:
doing work
inside of if yes:
doing work
inside of for each files/dirs calling list
calling sys.system python
executing python with give dir path
不完全是上面的内容..但是某种日志来查看程序正在做什么,如果它失败了,这个日志将包含错误消息的失败日志
我只想要一个正式的日志文件
你知道,有一个 logging
模块!
import logging
import os
logging.basicConfig(filename='tmp.log',
format='%(levelname)s %(asctime)s :: %(message)s',
level=logging.DEBUG)
# format is a formatter string, level shows what level of logs it will record
# in this case it is everything!
# Levels are as follows from most to least critical
# CRITICAL
# ERROR
# WARNING
# INFO
# DEBUG
do = True
yes = True
do_the_work = lambda: None
def main():
logging.debug("Inside of main()")
if do:
logging.debug("Inside of if do:")
do_the_work()
logging.debug("doing work")
if yes:
logging.debug("inside of if yes:")
do_the_work()
logging.debug("doing work")
for list in os.listdir('.'): # there were three files in my folder
logging.debug("inside of for each files/dirs calling list")
print('python')
logging.debug("calling sys.system python")
logging.debug("executing python with give dir path")
这将产生以下输出:
DEBUG 2015-03-18 12:26:59,272 :: Inside of main()
DEBUG 2015-03-18 12:26:59,272 :: Inside of if do:
DEBUG 2015-03-18 12:26:59,272 :: doing work
DEBUG 2015-03-18 12:26:59,272 :: inside of if yes:
DEBUG 2015-03-18 12:26:59,272 :: doing work
DEBUG 2015-03-18 12:26:59,272 :: inside of for each files/dirs calling list
DEBUG 2015-03-18 12:26:59,272 :: calling sys.system python
DEBUG 2015-03-18 12:26:59,272 :: executing python with give dir path
DEBUG 2015-03-18 12:26:59,272 :: inside of for each files/dirs calling list
DEBUG 2015-03-18 12:26:59,272 :: calling sys.system python
DEBUG 2015-03-18 12:26:59,272 :: executing python with give dir path
DEBUG 2015-03-18 12:26:59,272 :: inside of for each files/dirs calling list
DEBUG 2015-03-18 12:26:59,272 :: calling sys.system python
DEBUG 2015-03-18 12:26:59,272 :: executing python with give dir path
您可以轻松捕获异常并让它们抛出更多关键事件。
try:
really_important_method()
except EndOfTheWorldError:
logging.critical("Duck and cover boys, it's gonna blow.")
我认为在程序中你需要知道当前正在执行什么,程序的流程是什么,哪里出了问题,这就是日志发挥作用的地方。为此,您可以使用这个 pip 库函数记录器。
(正在安装) 使用以下命令安装它:
pip install function-logger
(导入语句) 在你的代码中导入这个库
from function_logger import function_logger
(USAGE)如何使用
在任何你想查看日志的函数上像装饰器一样使用它 ex:
@function_logger(logger)
def log_function(name=None, age=None):
logger.debug("Inside log function")
return dict(bmi=19)
输出:
Inside Function log_function with parameters: (),{'name': 'hello', 'age': 23'}
Inside log function
Function: log_function returns 19
我是 运行 一个 python 脚本,我想记录 python 程序的每个步骤。
例如,假设我有一个程序
def main()
if do:
do the work
if yes:
do the work
for list os.listdir(dir):
sys.system("python " + dirOfPython + " " + dirOflists)
我想记录我的程序在哪里..以及它们当前正在做什么。
在我的日志中我想要类似
的东西Inside of main()
inside of if do:
doing work
inside of if yes:
doing work
inside of for each files/dirs calling list
calling sys.system python
executing python with give dir path
不完全是上面的内容..但是某种日志来查看程序正在做什么,如果它失败了,这个日志将包含错误消息的失败日志
我只想要一个正式的日志文件
你知道,有一个 logging
模块!
import logging
import os
logging.basicConfig(filename='tmp.log',
format='%(levelname)s %(asctime)s :: %(message)s',
level=logging.DEBUG)
# format is a formatter string, level shows what level of logs it will record
# in this case it is everything!
# Levels are as follows from most to least critical
# CRITICAL
# ERROR
# WARNING
# INFO
# DEBUG
do = True
yes = True
do_the_work = lambda: None
def main():
logging.debug("Inside of main()")
if do:
logging.debug("Inside of if do:")
do_the_work()
logging.debug("doing work")
if yes:
logging.debug("inside of if yes:")
do_the_work()
logging.debug("doing work")
for list in os.listdir('.'): # there were three files in my folder
logging.debug("inside of for each files/dirs calling list")
print('python')
logging.debug("calling sys.system python")
logging.debug("executing python with give dir path")
这将产生以下输出:
DEBUG 2015-03-18 12:26:59,272 :: Inside of main()
DEBUG 2015-03-18 12:26:59,272 :: Inside of if do:
DEBUG 2015-03-18 12:26:59,272 :: doing work
DEBUG 2015-03-18 12:26:59,272 :: inside of if yes:
DEBUG 2015-03-18 12:26:59,272 :: doing work
DEBUG 2015-03-18 12:26:59,272 :: inside of for each files/dirs calling list
DEBUG 2015-03-18 12:26:59,272 :: calling sys.system python
DEBUG 2015-03-18 12:26:59,272 :: executing python with give dir path
DEBUG 2015-03-18 12:26:59,272 :: inside of for each files/dirs calling list
DEBUG 2015-03-18 12:26:59,272 :: calling sys.system python
DEBUG 2015-03-18 12:26:59,272 :: executing python with give dir path
DEBUG 2015-03-18 12:26:59,272 :: inside of for each files/dirs calling list
DEBUG 2015-03-18 12:26:59,272 :: calling sys.system python
DEBUG 2015-03-18 12:26:59,272 :: executing python with give dir path
您可以轻松捕获异常并让它们抛出更多关键事件。
try:
really_important_method()
except EndOfTheWorldError:
logging.critical("Duck and cover boys, it's gonna blow.")
我认为在程序中你需要知道当前正在执行什么,程序的流程是什么,哪里出了问题,这就是日志发挥作用的地方。为此,您可以使用这个 pip 库函数记录器。
(正在安装) 使用以下命令安装它:
pip install function-logger
(导入语句) 在你的代码中导入这个库
from function_logger import function_logger
(USAGE)如何使用 在任何你想查看日志的函数上像装饰器一样使用它 ex:
@function_logger(logger)
def log_function(name=None, age=None):
logger.debug("Inside log function")
return dict(bmi=19)
输出:
Inside Function log_function with parameters: (),{'name': 'hello', 'age': 23'}
Inside log function
Function: log_function returns 19