mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
bitbake: toaster: Write logs to BUILDDIR/toaster_logs
Fixes "2efb14648 toaster: Monitoring - implement Django logging system" when running in a container. When running in a container, the previous approach of using BASE_DIR is not a writable path. Also, we really do not want to be writing logs into the source tree, as the BASE_DIR was resolving to bitbake/lib/toaster/logs Since Toaster is only ever running in an environment where oe-init-buildenv or similar has been sourced, we should instead write the logs to BUILDDIR. Using BUILDDIR to logs make path writable but django-log-viewer does'nt manage to write logs using an absolute path as BUILDDIR, where the existing toaster_ui.log was already being written. Also drop the /logs/ directory, as it has not been created which also breaks in a container environment To handle the constraints linked to django-log-viewer and /logs/, we've updated bitbake/bin/toaster to create a toaster_logs/ directory in BUILDDIR if it doesn't exist, when toaster starts up. Also manage to set BUILDDIR/toaster_logs/ as default location for toaster logs. (Bitbake rev: efbd9d54f57be7a7a10f0b56e7e62c25974e99e6) Signed-off-by: Alassane Yattara <alassane.yattara@savoirfairelinux.com> Signed-off-by: Tim Orling <tim.orling@konsulko.com> Tested-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
6c43e84032
commit
7e0cce4f6b
|
@ -84,7 +84,7 @@ webserverStartAll()
|
|||
echo "Starting webserver..."
|
||||
|
||||
$MANAGE runserver --noreload "$ADDR_PORT" \
|
||||
</dev/null >>${BUILDDIR}/toaster_web.log 2>&1 \
|
||||
</dev/null >>${TOASTER_LOGS_DIR}/web.log 2>&1 \
|
||||
& echo $! >${BUILDDIR}/.toastermain.pid
|
||||
|
||||
sleep 1
|
||||
|
@ -181,6 +181,14 @@ WEBSERVER=1
|
|||
export TOASTER_BUILDSERVER=1
|
||||
ADDR_PORT="localhost:8000"
|
||||
TOASTERDIR=`dirname $BUILDDIR`
|
||||
# ${BUILDDIR}/toaster_logs/ became the default location for toaster logs
|
||||
# This is needed for implemented django-log-viewer: https://pypi.org/project/django-log-viewer/
|
||||
# If the directory does not exist, create it.
|
||||
TOASTER_LOGS_DIR="${BUILDDIR}/toaster_logs/"
|
||||
if [ ! -d $TOASTER_LOGS_DIR ]
|
||||
then
|
||||
mkdir $TOASTER_LOGS_DIR
|
||||
fi
|
||||
unset CMD
|
||||
for param in $*; do
|
||||
case $param in
|
||||
|
@ -299,7 +307,7 @@ case $CMD in
|
|||
export BITBAKE_UI='toasterui'
|
||||
if [ $TOASTER_BUILDSERVER -eq 1 ] ; then
|
||||
$MANAGE runbuilds \
|
||||
</dev/null >>${BUILDDIR}/toaster_runbuilds.log 2>&1 \
|
||||
</dev/null >>${TOASTER_LOGS_DIR}/toaster_runbuilds.log 2>&1 \
|
||||
& echo $! >${BUILDDIR}/.runbuilds.pid
|
||||
else
|
||||
echo "Toaster build server not started."
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import logging
|
||||
import json
|
||||
from pathlib import Path
|
||||
from django.http import HttpRequest
|
||||
|
||||
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
|
||||
|
||||
BUILDDIR = Path(os.environ.get('BUILDDIR', '/tmp'))
|
||||
|
||||
def log_api_request(request, response, view, logger_name='api'):
|
||||
"""Helper function for LogAPIMixin"""
|
||||
|
@ -108,7 +108,7 @@ LOGGING_SETTINGS = {
|
|||
'file_django': {
|
||||
'level': 'INFO',
|
||||
'class': 'logging.handlers.TimedRotatingFileHandler',
|
||||
'filename': BASE_DIR / 'logs/django.log',
|
||||
'filename': BUILDDIR / 'toaster_logs/django.log',
|
||||
'when': 'D', # interval type
|
||||
'interval': 1, # defaults to 1
|
||||
'backupCount': 10, # how many files to keep
|
||||
|
@ -117,7 +117,7 @@ LOGGING_SETTINGS = {
|
|||
'file_api': {
|
||||
'level': 'INFO',
|
||||
'class': 'logging.handlers.TimedRotatingFileHandler',
|
||||
'filename': BASE_DIR / 'logs/api.log',
|
||||
'filename': BUILDDIR / 'toaster_logs/api.log',
|
||||
'when': 'D',
|
||||
'interval': 1,
|
||||
'backupCount': 10,
|
||||
|
@ -126,7 +126,7 @@ LOGGING_SETTINGS = {
|
|||
'file_toaster': {
|
||||
'level': 'INFO',
|
||||
'class': 'logging.handlers.TimedRotatingFileHandler',
|
||||
'filename': BASE_DIR / 'logs/toaster.log',
|
||||
'filename': BUILDDIR / 'toaster_logs/web.log',
|
||||
'when': 'D',
|
||||
'interval': 1,
|
||||
'backupCount': 10,
|
||||
|
|
|
@ -316,12 +316,12 @@ for t in os.walk(os.path.dirname(currentdir)):
|
|||
LOGGING = LOGGING_SETTINGS
|
||||
|
||||
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
|
||||
BUILDDIR = os.environ.get("BUILDDIR", "/tmp")
|
||||
|
||||
# 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_FILES_DIR = os.path.join(BUILDDIR, "toaster_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']
|
||||
|
|
Loading…
Reference in New Issue
Block a user