feat(playout): enhance playout logging (#1495)

Some initial work on modernizing the playout app. This replace any custom logger or
logging based logger with the logging tools from libretime_shared.logging and loguru.

Removed all the thread/function assigned logger (self.logger = ...), as this makes it
part of the logic (passing logger though function args) as it should not.

Of a dedicated logger is required for a specific task, it should use
the create_task_logger function.

- refactor: remove dead code
- refactor: remove py2 specific fix
- feat: remove unused test command
- feat: setup shared cli and logging tools
- feat: replace logging with loguru
- feat: setup shared cli and logging tools for notify
- fix: warn method deos not exist
- feat: make cli setup the entrypoint
- fix: install shared modules globally in production
  use extra_requires to load local packages in dev environement
- feat: configure log path in systemd service
- feat: default behavior is to log to console only
- feat: create log dir during install
- chore: add comment
- fix: don't create useless dir in install
- fix: move notify logs to /var/log/libretime dir
- fix: update setup_logger attrs
- style: linting
- fix: replace verbosity flag with log-level flag
- feat: use shared logging tool in liquidsoap
- fix: pass logger down to api client
- feat: allow custom log_filepath in liquidsoap config
- chore: add pylintrc to playout
- refactor: fix pylint errors
- feat: set liquidsoap log filepath in systemd service
- fix: missing setup entrypoint update

BREAKING CHANGE: for playout and liquidsoap the default log file path changed to None
and will only log to the console when developing / testing. Unless you are running the
app as a systemd service (production) the default logs filepaths changed:
from "/var/log/airtime/pypo/pypo.log" to "/var/log/libretime/playout.log" and
from "/var/log/airtime/pypo-liquidsoap/ls_script.log" to "/var/log/libretime/liquidsoap.log"

BREAKING CHANGE: for playout-notify the default log file path changed
from "/var/log/airtime/pypo/notify.log" to "/var/log/libretime/playout-notify.log"
This commit is contained in:
Jonas L 2022-01-13 16:11:37 +01:00 committed by GitHub
parent 56a3875e2d
commit 5c72f714a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 323 additions and 452 deletions

11
install
View file

@ -93,6 +93,12 @@ skip_postgres=0
skip_rabbitmq=0
default_value="Y"
# <user:group> <path>
mkdir_and_chown() {
mkdir -p "$2"
chown -R "$1" "$2"
}
function verbose() {
if [[ ${_v} -eq 1 ]]; then
echo -e "$@"
@ -1027,12 +1033,17 @@ if [ ! -d /var/log/airtime ]; then
verbose "\n * Creating /var/log/airtime"
loudCmd "mkdir -p /var/log/airtime"
mkdir_and_chown "$web_user:$web_user" "/var/log/libretime"
verbose "\n * Copying logrotate files..."
loudCmd "cp ${AIRTIMEROOT}/legacy/build/airtime-php.logrotate /etc/logrotate.d/airtime-php"
loudCmd "cp ${AIRTIMEROOT}/playout/install/logrotate/libretime-liquidsoap.conf /etc/logrotate.d/libretime-liquidsoap"
fi
verbose "\n * Installing Shared..."
loudCmd "$pip_cmd install ${AIRTIMEROOT}/shared"
verbose "...Done"
verbose "\n * Installing API client..."
loudCmd "$pip_cmd install ${AIRTIMEROOT}/api_client"
verbose "...Done"