enable timerotateloghandler (configurable) (#311)

* attempt to enchance logging

* clean up logging

* clean up logging

* reset to logger

* clean up imports

* add comments in config.py

* remove redundant declaration of logging.config. Already exists in caravel/__init__.py

* replace RotatingFileHandler with TimedRotatingFileHandler

* revert back running web server in debug mode

* fix debug in bin/caravel

* resolve build errors - formatting

* need to test

* enable time rotateloghandler

* revert back print statements - add feature for rotatetimelog which is needed and make it configurable

* revert back to default in master

* fix build issues

* remove extra print statement

* change log location to default

* configure console log level and format
This commit is contained in:
Siddharth Gupta 2016-05-01 07:59:08 -07:00 committed by Maxime Beauchemin
parent 7b5b602e96
commit d7ea47387f
2 changed files with 36 additions and 4 deletions

View File

@ -6,6 +6,7 @@ from __future__ import unicode_literals
import logging
import os
from logging.handlers import TimedRotatingFileHandler
from flask import Flask, redirect
from flask.ext.appbuilder import SQLA, AppBuilder, IndexView
@ -20,10 +21,6 @@ VERSION = version.VERSION_STRING
APP_DIR = os.path.dirname(__file__)
CONFIG_MODULE = os.environ.get('CARAVEL_CONFIG', 'caravel.config')
# Logging configuration
logging.basicConfig(format='%(asctime)s:%(levelname)s:%(name)s:%(message)s')
logging.getLogger().setLevel(logging.DEBUG)
app = Flask(__name__)
app.config.from_object(CONFIG_MODULE)
if not app.debug:
@ -37,6 +34,18 @@ cache = Cache(app, config=app.config.get('CACHE_CONFIG'))
migrate = Migrate(app, db, directory=APP_DIR + "/migrations")
# Logging configuration
logging.basicConfig(format=app.config.get('LOG_FORMAT'))
logging.getLogger().setLevel(app.config.get('LOG_LEVEL'))
if app.config.get('ENABLE_TIME_ROTATE'):
logging.getLogger().setLevel(app.config.get('TIME_ROTATE_LOG_LEVEL'))
handler = TimedRotatingFileHandler(app.config.get('FILENAME'),
when=app.config.get('ROLLOVER'),
interval=app.config.get('INTERVAL'),
backupCount=app.config.get('BACKUP_COUNT'))
logging.getLogger().addHandler(handler)
class MyIndexView(IndexView):
@expose('/')

View File

@ -130,6 +130,29 @@ CACHE_CONFIG = {'CACHE_TYPE': 'null'}
VIZ_TYPE_BLACKLIST = []
"""
1) http://docs.python-guide.org/en/latest/writing/logging/
2) https://docs.python.org/2/library/logging.config.html
"""
# Console Log Settings
LOG_FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
LOG_LEVEL = 'DEBUG'
# ---------------------------------------------------
# Enable Time Rotate Log Handler
# ---------------------------------------------------
# LOG_LEVEL = DEBUG, INFO, WARNING, ERROR, CRITICAL
ENABLE_TIME_ROTATE = False
TIME_ROTATE_LOG_LEVEL = 'DEBUG'
FILENAME = '/tmp/caravel.log'
ROLLOVER = 'midnight'
INTERVAL = 1
BACKUP_COUNT = 30
try:
from caravel_config import * # noqa
except Exception: