Add logrotate and create dir if missing.
This commit is contained in:
parent
5d353f4134
commit
c406d998f3
3 changed files with 18 additions and 5 deletions
|
@ -1,7 +1,10 @@
|
||||||
import logging
|
import logging
|
||||||
|
from logging.handlers import RotatingFileHandler
|
||||||
from helpers.os_environment import resolve_external_file_path
|
from helpers.os_environment import resolve_external_file_path
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
LOG_MAX_SIZE_MB = 20
|
||||||
|
LOG_BACKUP_COUNT = 4
|
||||||
|
|
||||||
class LoggingManager():
|
class LoggingManager():
|
||||||
|
|
||||||
|
@ -10,6 +13,16 @@ class LoggingManager():
|
||||||
def __init__(self, name: str):
|
def __init__(self, name: str):
|
||||||
self.logger = logging.getLogger(name)
|
self.logger = logging.getLogger(name)
|
||||||
|
|
||||||
|
|
||||||
|
logpath: str = resolve_external_file_path("/logs")
|
||||||
|
if not os.path.isdir(logpath):
|
||||||
|
try:
|
||||||
|
# Try creating the directory.
|
||||||
|
os.mkdir(logpath)
|
||||||
|
except:
|
||||||
|
print("Failed to create log directory.")
|
||||||
|
return
|
||||||
|
|
||||||
filename: str = resolve_external_file_path("/logs/" + name + ".log")
|
filename: str = resolve_external_file_path("/logs/" + name + ".log")
|
||||||
|
|
||||||
if not os.path.isfile(filename):
|
if not os.path.isfile(filename):
|
||||||
|
@ -17,12 +30,12 @@ class LoggingManager():
|
||||||
# Try creating the file.
|
# Try creating the file.
|
||||||
open(filename, "x")
|
open(filename, "x")
|
||||||
except:
|
except:
|
||||||
print("Failed to create log file")
|
print("Failed to create log file.")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
self.logger.setLevel(logging.INFO)
|
self.logger.setLevel(logging.INFO)
|
||||||
fh = logging.FileHandler(filename)
|
fh = RotatingFileHandler(filename, maxBytes=LOG_MAX_SIZE_MB*(1024**2), backupCount=LOG_BACKUP_COUNT)
|
||||||
formatter = logging.Formatter('%(asctime)s | %(levelname)s | %(message)s')
|
formatter = logging.Formatter('%(asctime)s | %(levelname)s | %(message)s')
|
||||||
fh.setFormatter(formatter)
|
fh.setFormatter(formatter)
|
||||||
# add the handler to the logger
|
# add the handler to the logger
|
||||||
|
|
2
logs/.gitignore
vendored
2
logs/.gitignore
vendored
|
@ -1 +1 @@
|
||||||
*.log
|
*.log*
|
||||||
|
|
|
@ -504,11 +504,11 @@ class Player():
|
||||||
self.running = True
|
self.running = True
|
||||||
self.out_q = out_q
|
self.out_q = out_q
|
||||||
|
|
||||||
self.logger = LoggingManager("channel" + str(channel))
|
self.logger = LoggingManager("Player" + str(channel))
|
||||||
|
|
||||||
self.api = MyRadioAPI(self.logger)
|
self.api = MyRadioAPI(self.logger)
|
||||||
|
|
||||||
self.state = StateManager("channel" + str(channel), self.logger,
|
self.state = StateManager("Player" + str(channel), self.logger,
|
||||||
self.__default_state, self.__rate_limited_params)
|
self.__default_state, self.__rate_limited_params)
|
||||||
|
|
||||||
self.state.add_callback(self._send_status)
|
self.state.add_callback(self._send_status)
|
||||||
|
|
Loading…
Reference in a new issue