2018-10-10 22:43:50 +00:00
|
|
|
import logging
|
2018-12-09 23:15:10 +00:00
|
|
|
import logging.handlers
|
|
|
|
import os
|
2018-12-21 10:28:06 +00:00
|
|
|
import sys
|
2018-12-09 23:15:10 +00:00
|
|
|
|
|
|
|
from django.conf import settings as dj_settings
|
|
|
|
|
2018-12-29 15:11:20 +00:00
|
|
|
from .management.appconfig import appconfig
|
2018-12-09 23:15:10 +00:00
|
|
|
from .management.jobs.synchronize import schedule_synchronize_global
|
|
|
|
from .scheduler import initialize_scheduler
|
2018-12-10 21:23:00 +00:00
|
|
|
from django.db.utils import OperationalError
|
2018-12-09 23:15:10 +00:00
|
|
|
|
2018-12-21 10:28:06 +00:00
|
|
|
|
2018-12-09 23:15:10 +00:00
|
|
|
def __initialize_logger():
|
|
|
|
log_dir = os.path.join(dj_settings.DATA_DIR, 'logs')
|
|
|
|
os.makedirs(log_dir, exist_ok=True)
|
|
|
|
|
2018-12-21 10:28:06 +00:00
|
|
|
handlers = []
|
|
|
|
|
2018-12-09 23:15:10 +00:00
|
|
|
file_handler = logging.handlers.RotatingFileHandler(
|
|
|
|
os.path.join(log_dir, "log.log"),
|
|
|
|
maxBytes=1024 * 1024,
|
|
|
|
backupCount=5
|
|
|
|
)
|
2018-12-21 10:28:06 +00:00
|
|
|
handlers.append(file_handler)
|
|
|
|
|
|
|
|
if dj_settings.DEBUG:
|
|
|
|
console_handler = logging.StreamHandler(stream=sys.stdout)
|
|
|
|
console_handler.setLevel(logging.DEBUG)
|
|
|
|
handlers.append(console_handler)
|
2018-12-09 23:15:10 +00:00
|
|
|
|
|
|
|
logging.basicConfig(
|
|
|
|
level=dj_settings.LOG_LEVEL,
|
|
|
|
format=dj_settings.LOG_FORMAT,
|
2018-12-21 10:28:06 +00:00
|
|
|
handlers=handlers
|
2018-12-09 23:15:10 +00:00
|
|
|
)
|
2018-10-10 22:43:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
def main():
|
2018-12-09 23:15:10 +00:00
|
|
|
__initialize_logger()
|
|
|
|
|
2018-12-10 21:23:00 +00:00
|
|
|
try:
|
2018-12-29 15:11:20 +00:00
|
|
|
if appconfig.initialized:
|
2018-12-10 21:23:00 +00:00
|
|
|
initialize_scheduler()
|
|
|
|
schedule_synchronize_global()
|
|
|
|
except OperationalError:
|
|
|
|
# Settings table is not created when running migrate or makemigrations, so just don't do anything in this case.
|
|
|
|
pass
|
2018-12-09 23:15:10 +00:00
|
|
|
|
2018-10-10 22:43:50 +00:00
|
|
|
logging.info('Initialization complete.')
|