【发布时间】:2021-11-23 22:20:25
【问题描述】:
尝试学习使用日志记录模块时,当我在新的文件编辑器选项卡中运行下面的代码时,我会收到一组很长的消息,其中代码下方包含一个简短的示例。我的期望是通过循环获得 2021-05-23 Time - DEBUG - i is 0 total is 0, etc.。另外,阶乘函数是故意不正确的。
import logging
logging.basicConfig(level = logging.DEBUG, format = ' %(actime)s - %(levelname)s - %(message)s')
logging.debug('Start of Program')
def factorial(n):
logging.debug('start of factorial(%s%%)' % (n))
total = 1
for i in range(n + 1):
total *= i
logging.debug('i is ' + str(i) + ', total is ' +str(total))
logging.debug('end of factorial(%s%%)' % (n))
return total
print(factorial(5))
logging.debug('end of program')
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\XXXXX\Anaconda3\lib\logging\__init__.py", line 436, in format
return self._format(record)
File "C:\Users\XXXXX\Anaconda3\lib\logging\__init__.py", line 432, in _format
return self._fmt % record.__dict__
KeyError: 'actime'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\XXXXX\Anaconda3\lib\logging\__init__.py", line 1081, in emit
msg = self.format(record)
File "C:\Users\XXXXX\Anaconda3\lib\logging\__init__.py", line 925, in format
return fmt.format(record)
File "C:\Users\XXXXX\Anaconda3\lib\logging\__init__.py", line 667, in format
s = self.formatMessage(record)
File "C:\Users\XXXXX\Anaconda3\lib\logging\__init__.py", line 636, in formatMessage
return self._style.format(record)
File "C:\Users\XXXXX\Anaconda3\lib\logging\__init__.py", line 438, in format
raise ValueError('Formatting field not found in record: %s' % e)
ValueError: Formatting field not found in record: 'actime'
Call stack:
File "C:\Users\XXXXX\Anaconda3\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\XXXXX\Anaconda3\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\spyder_kernels\console\__main__.py", line 23, in <module>
start.main()
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\spyder_kernels\console\start.py", line 332, in main
kernel.start()
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\ipykernel\kernelapp.py", line 612, in start
self.io_loop.start()
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\tornado\platform\asyncio.py", line 149, in start
self.asyncio_loop.run_forever()
File "C:\Users\XXXXX\Anaconda3\lib\asyncio\base_events.py", line 570, in run_forever
self._run_once()
File "C:\Users\XXXXX\Anaconda3\lib\asyncio\base_events.py", line 1859, in _run_once
handle._run()
File "C:\Users\XXXXX\Anaconda3\lib\asyncio\events.py", line 81, in _run
self._context.run(self._callback, *self._args)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\tornado\ioloop.py", line 690, in <lambda>
lambda f: self._run_callback(functools.partial(callback, future))
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\tornado\ioloop.py", line 743, in _run_callback
ret = callback()
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\tornado\gen.py", line 787, in inner
self.run()
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\tornado\gen.py", line 748, in run
yielded = self.gen.send(value)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\ipykernel\kernelbase.py", line 365, in process_one
yield gen.maybe_future(dispatch(*args))
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\tornado\gen.py", line 209, in wrapper
yielded = next(result)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\ipykernel\kernelbase.py", line 268, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\tornado\gen.py", line 209, in wrapper
yielded = next(result)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\ipykernel\kernelbase.py", line 543, in execute_request
self.do_execute(
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\tornado\gen.py", line 209, in wrapper
yielded = next(result)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\ipykernel\ipkernel.py", line 306, in do_execute
res = shell.run_cell(code, store_history=store_history, silent=silent)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\ipykernel\zmqshell.py", line 536, in run_cell
return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2877, in run_cell
result = self._run_cell(
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2923, in _run_cell
return runner(coro)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\IPython\core\async_helpers.py", line 68, in _pseudo_sync_runner
coro.send(None)
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3146, in run_cell_async
has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3338, in run_ast_nodes
if (await self.run_code(code, result, async_=asy)):
File "C:\Users\XXXXX\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3418, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-16-7a41feee5232>", line 1, in <module>
print(factorial(5))
File "<ipython-input-15-a28d1ab751d9>", line 6, in factorial
logging.debug('i is' + str(i) + ', total is ' +str(total))
Message: 'i is1, total is 0'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\XXXXX\Anaconda3\lib\logging\__init__.py", line 436, in format
return self._format(record)
File "C:\Users\XXXXX\Anaconda3\lib\logging\__init__.py", line 432, in _format
return self._fmt % record.__dict__
KeyError: 'actime'
During handling of the above exception, another exception occurred:
【问题讨论】:
-
你知道那是回溯而不是日志吧?
-
asctime中的错字。
标签: python logging spyder error-logging