1、事件追踪
在什么样的时间发生了什么样的事情
2、bug调试
3、程序告警
4、大数据统计
ELK 日志分析系统
elasticsearh + logstasn + kibana
名词概念
loggers:日志器 —— 定大方向:1
handlers:处理器 —— 执行:3
formatters:格式化,是与处理器进行绑定的 —— 规矩:2
filters:过滤器,控制输出的内容
# 日志等级
"""
debug
info
warning
error
critical
"""
import logging
muyi = '%(asctime)s - %(levelname)s - %(name)s - %(lineno)d'
logging.basicConfig(
level=logging.WARNING, # 自定义日志等级等级
format=muyi, # 绑定
filename='my.log', # 保存的文件
filemode='a', # 写入方式
)
a = 'hello world'
logging.debug(a)
logging.info(a)
logging.warning(a)
logging.error(a)
logging.critical(a)
简单的日志配置
settings .py
# 简单的日志配置
LOGGING = {
'version': 1,
'handlers': {
'file': {
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': os.path.join(BASE_DIR, "logs/django.log")
}
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'INFO',
'propagate': True
}
}
}
使用日志中的配置
views.py
log = logging.getLogger('django.log') # django.log 要和配置中的一致
def hello(request):
log.info('hello world')
print('你好世界')
return HttpResponse('你好')
urls.py
from django.urls import path
from .views import hello
app_name = 'the_17' # 命名空间
urlpatterns = [
path('hello/', hello),
]
保存的日志文件