我正在执行一个测试,我想捕获错误或异常到日志文件而不是在控制台上
import logging
import numpy as np
def Log():
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(levelname)-8s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename='Arming_Command.log',
filemode='w')
def testCase1():
logging.info('Started Test Case 1')
logging.info("Test case 1 Passed %s",np.testing.assert_equal([4,5], [4,6]),verbose=False)
logging.info('Test Case 1 Completed')
def testCase2():
logging.info('Started Test Case 2')
logging.info("Test case 2 Passed %s",np.testing.assert_equal([4,5], [4,6]),verbose=False)
logging.info('Test Case 2 Completed')
if __name__ == '__main__':
Log()
testCase1()
testCase2()
以上代码仅在控制台中打印
回溯(最近通话最近):文件 “ C:/Users/hariom.singh/PycharmProjects/Connect_Pversion/venv/Python_Logging.py”, 第25行,在 testCase1()文件“ C:/Users/hariom.singh/PycharmProjects/Connect_Pversion/venv/Python_Logging.py”, testCase1中的第14行 logging.info(“测试用例1已通过%s”,np.testing.assert_equal([4,5],[4,6]),verbose = False)文件 “ C:\ Users \ hariom.singh \ PycharmProjects \ Connect_Pversion \ venv \ lib \ site-packages \ numpy \ testing_private \ utils.py”, 第342行,在assert_equal中 assert_equal(actual [k],required [k],'item =%r \ n%s'%(k,err_msg),详细)文件 “ C:\ Users \ hariom.singh \ PycharmProjects \ Connect_Pversion \ venv \ lib \ site-packages \ numpy \ testing_private \ utils.py”, assert_equal中的第414行 引发AssertionError(msg)AssertionError:项目不相等:item = 1
实际:5个需要:6
以退出代码1完成的过程
控制台具有良好的信息,但没有将其记录到我的日志文件中 相反,我只在日志文件中看到
Thu, 15 Nov 2018 12:53:13 INFO Started Test Case 1
问题 1)如何在日志文件中捕获信息 2)即使有异常,如何继续执行和记录日志 在我的案例中,测试Case1出现异常,结果是testCase2没有运行