FORMAT = '[%(levelname)s: %(filename)s: %(lineno)4d]: %(message)s'
时间: 2024-03-19 14:21:28 浏览: 129
你好!我可以看出你对日志的格式化有一些疑问。这是一个常见的格式化字符串,用于设置日志消息的显示样式。让我来解释一下:
- `%(levelname)s`:这个占位符用于显示日志级别的名称,比如DEBUG、INFO、WARNING等。
- `%(filename)s`:这个占位符用于显示包含当前代码的文件名。
- `%(lineno)4d`:这个占位符用于显示代码所在行号,4d表示以4位数的形式显示。
- `%(message)s`:这个占位符用于显示日志消息的内容。
通过设置这个格式化字符串,你可以自定义日志消息的显示格式。希望这能回答你的问题!如果你还有其他疑问,请随时提问。
相关问题
[log] log_level = logging.DEBUG log_format = %(asctime)s - %(name)s - %(filename)s[line:%(lineno)d] - %(levelname)s - %(message)s log_path = Log
这是一个配置日志的示例,其中包含了以下配置项:
- log_level:日志级别,这里设置为DEBUG级别,也可以设置为INFO、WARNING、ERROR、CRITICAL等级别。
- log_format:日志格式,这里采用了常见的日志格式,包含了时间、日志名称、文件名、行号、日志级别和日志信息。
- log_path:日志文件保存路径,这里设置为Log文件夹。
通过这些配置项,可以方便地记录应用程序的运行状态,便于问题排查和分析。
所以报错这样是正常的对吗from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.events import EVENT_JOB_EXECUTED, EVENT_JOB_ERROR import datetime import logging 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='log1.txt', filemode='a') logging.FileHandler(encoding='utf-8', filename='log1.txt') def aps_test(x): print(datetime.datetime.now().strftime('%Y-%m-%d %:H%M%S'), x) def date_test(x): print(datetime.datetime.now().strftime('%Y-%m-%d %:H%M%S'), x) print(1/0) def my_listener(event): if event.exception: print('出错??????') else: print('正常///////////') scheduler = BlockingScheduler() scheduler.add_job(func=date_test, args=('一次性出错任务',), next_run_time=datetime.datetime.now()+datetime.timedelta(seconds=15), id='date_task') scheduler.add_job(func=aps_test, args=('循环任务',), trigger='interval', seconds=3, id='interval_task') scheduler.add_listener(my_listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR) scheduler._logger=logging scheduler.start()
这个报错是因为在logging.basicConfig()方法中,有一个格式字符串的语法错误,即datefmt参数的格式字符串中有一个“%”符号后面没有跟任何字符,应该把它改成“%H”。正确的格式字符串应该是'%Y-%m-%d %H:%M:%S'。修改后的代码如下:
```python
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.events import EVENT_JOB_EXECUTED, EVENT_JOB_ERROR
import datetime
import logging
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='log1.txt',
filemode='a')
logging.FileHandler(encoding='utf-8', filename='log1.txt')
def aps_test(x):
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), x)
def date_test(x):
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), x)
print(1/0)
def my_listener(event):
if event.exception:
print('出错??????')
else:
print('正常///////////')
scheduler = BlockingScheduler()
scheduler.add_job(func=date_test, args=('一次性出错任务',),
next_run_time=datetime.datetime.now()+datetime.timedelta(seconds=15),
id='date_task')
scheduler.add_job(func=aps_test, args=('循环任务',), trigger='interval', seconds=3, id='interval_task')
scheduler.add_listener(my_listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR)
scheduler._logger=logging
scheduler.start()
```
注意:如果你在使用这段代码时,日期时间格式不需要秒数,可以将datefmt参数改为'%Y-%m-%d %H:%M'。
阅读全文