bitbake: toaster: Monitoring - implement Django logging system

(Bitbake rev: 2efb146480ee46c0463d9edb71bf1c03ce15bcf2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alassane Yattara
2023-10-04 14:44:15 +01:00
committed by Richard Purdie
parent 3ac4694fc3
commit 78b02e1845
7 changed files with 198 additions and 38 deletions

View File

@@ -9,6 +9,8 @@
# Django settings for Toaster project.
import os
from pathlib import Path
from toastermain.logs import LOGGING_SETTINGS
DEBUG = True
@@ -186,7 +188,13 @@ TEMPLATES = [
'django.template.loaders.app_directories.Loader',
#'django.template.loaders.eggs.Loader',
],
'string_if_invalid': InvalidString("%s"),
# https://docs.djangoproject.com/en/4.2/ref/templates/api/#how-invalid-variables-are-handled
# Generally, string_if_invalid should only be enabled in order to debug
# a specific template problem, then cleared once debugging is complete.
# If you assign a value other than '' to string_if_invalid,
# you will experience rendering problems with these templates and sites.
# 'string_if_invalid': InvalidString("%s"),
'string_if_invalid': "",
'debug': DEBUG,
},
},
@@ -242,6 +250,9 @@ INSTALLED_APPS = (
'django.contrib.humanize',
'bldcollector',
'toastermain',
# 3rd-lib
"log_viewer",
)
@@ -302,43 +313,22 @@ for t in os.walk(os.path.dirname(currentdir)):
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'formatters': {
'datetime': {
'format': '%(asctime)s %(levelname)s %(message)s'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'datetime',
}
},
'loggers': {
'toaster' : {
'handlers': ['console'],
'level': 'DEBUG',
},
'django.request': {
'handlers': ['console'],
'level': 'WARN',
'propagate': True,
},
}
}
LOGGING = LOGGING_SETTINGS
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
# LOG VIEWER
# https://pypi.org/project/django-log-viewer/
LOG_VIEWER_FILES_PATTERN = '*.log*'
LOG_VIEWER_FILES_DIR = os.path.join(BASE_DIR, 'logs')
LOG_VIEWER_PAGE_LENGTH = 25 # total log lines per-page
LOG_VIEWER_MAX_READ_LINES = 100000 # total log lines will be read
LOG_VIEWER_PATTERNS = ['INFO', 'DEBUG', 'WARNING', 'ERROR', 'CRITICAL']
# Optionally you can set the next variables in order to customize the admin:
LOG_VIEWER_FILE_LIST_TITLE = "Logs list"
if DEBUG and SQL_DEBUG:
LOGGING['loggers']['django.db.backends'] = {