日志不是在docker撰写的

我正在使用docker组成开发环境。 我的docker撰写文件是,

version: '2' services: mysql_db: image: mysql:5.6 ports: - "3310:3306" environment: MYSQL_ROOT_PASSWORD: some pass MYSQL_DATABASE: some db MYSQL_USER: some user MYSQL_PASSWORD: some pass onehop: build: context: . #current dir as build context args: mysql_host: 127.0.0.1 mysql_port: 3306 mysql_user: onehop mysql_passwd: onehop mysql_db: onehop celery_host: some host celery_port: some port celery_user: some user celery_password: some password app_env: SomeDev volumes: - ../../.:/code working_dir: /code/ environment: ONEHOP_ENV: PranavDev6530 PYTHONUNBUFFERED: 0 command: bash -c "pip install --upgrade pip && pip install -r requirements.txt && python manage.py runserver updatedb" ports: - "5000:5000" depends_on: - mysql_db 

我使用了一个查找logging config的函数,如果它已经configuration好了,提供日志logging实例,如下所示,

 def get_logger(logger_name=None): global __logging_configured if not __logging_configured: logging.config.dictConfig(CONFIG.LOGGING_CONFIG) __logging_configured = True logger = logging.getLogger(logger_name or CONFIG.DEFAULT_LOGGER_NAME) return logger 

我调用get_logger('logger name')来获取logging器。

CONFIG.LOGGING_CONFIG是一个字典,如下所示,

 LOGGING_CONFIG = dict( version=1, formatters={ 'compact': { 'format': '%(asctime)s [%(levelname)-8.8s] %(name)-10.10s : %(message)s' }, 'verbose': { 'format': '%(asctime)s [%(levelname)-8.8s] %(name)-8.8s [%(filename)-15.15s:%(lineno)-3.3s]: %(message)s' }, 'err_report': { 'format': '%(asctime)s\n%(message)s' } }, handlers={ 'slack_jabber': { 'class': 'contrib.slacker.SlackHandler', 'url': 'https://hooks.slack.com/services/lol', 'channel': 'somedev', 'username': 'crash_jabber', 'icon_emoji': ':ghost:' }, 'cron': { 'class': 'logging.handlers.TimedRotatingFileHandler', 'formatter': 'verbose', 'level': 'DEBUG', 'filename': '%s/%s' % (pwd, '../logs/cron/cron.log'), 'interval': 1, 'when': 'midnight', 'encoding': 'utf8' }, 'api': { 'class': 'logging.handlers.TimedRotatingFileHandler', 'formatter': 'verbose', 'level': 'DEBUG', 'filename': '%s/%s' % (pwd, '../logs/api/api.log'), 'interval': 1, 'when': 'midnight', 'encoding': 'utf8' }, 'critical_err': { 'class': 'logging.handlers.SMTPHandler', 'formatter': 'err_report', 'mailhost': ("localhost", 25), 'fromaddr': 'no-reply@company.co', 'toaddrs': [ 'lol@lol.com' ], 'subject': '[Dev] Onehop : Something bad happened' }, 'default': { 'class': 'logging.StreamHandler', 'formatter': 'verbose' }, }, loggers={ '': { 'handlers': ['default'], 'level': 'DEBUG' }, 'cron': { 'handlers': ['cron'], 'level': 'DEBUG', 'propagate': False }, 'api': { 'handlers': ['api', 'default'], 'level': 'DEBUG', 'propagate': False }, 'crash': { 'handlers': ['critical_err', 'api', 'slack_jabber'], 'level': 'ERROR', 'propagate': False } } ) 

目前的设置,完美的工作在我的ubuntu机器,但不知何故日志不会在docker集装箱内生成,一旦我做docker-compose upsudo docker-compose up 。 我很新的docker撰写,我错过了一些设置docker-compose.yaml ? 谢谢。