Pastebin
Paste #3823: flask logger
< previous paste - next paste>
Pasted by tdn
#!/usr/bin/env python
#encoding=utf8
import os
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from jinja2 import BaseLoader, ChoiceLoader, TemplateNotFound
from flask.ext.login import LoginManager
from flask.ext.babel import Babel, lazy_gettext
from config import basedir, WTF_CSRF_ENABLED, SECRET_KEY, LANGUAGES, PRODUCTS_PER_PAGE, SQLALCHEMY_RECORD_QUERIES, DATABASE_QUERY_TIMEOUT, APP_NAME, SITE_NAME, SITE_URL, UPLOAD_FOLDER, ALLOWED_EXTENSIONS, UPLOADED_FILES_DEST, UPLOADED_IMAGES_DEST, LOG_PATH, LOG_SIZE, LOG_LEVEL, LOG_NAME, STATIC_ROOT, PRODUCT_IMAGE_FOLDER, DATA_ROOT, SQLALCHEMY_DATABASE_URI
app = Flask(__name__)
app.config.from_object('config')
app.jinja_env.line_statement_prefix = '%'
#app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI
db = SQLAlchemy(app)
lm = LoginManager()
lm.init_app(app)
# Flask-Login needs to know what view logs users in
lm.login_view = "login"
lm.login_message = lazy_gettext('Please log in to access this page.')
babel = Babel(app)
import logging
from logging.handlers import RotatingFileHandler
file_handler = RotatingFileHandler(LOG_PATH, 'a', LOG_SIZE, 10)
logger = logging.getLogger(LOG_NAME)
app.logger.addHandler(logger)
app.logger.addHandler(file_handler)
if app.debug:
file_handler.setLevel(logging.DEBUG)
app.logger.setLevel(logging.DEBUG)
logger.setLevel(logging.DEBUG)
else:
file_handler.setLevel(logging.INFO)
app.logger.setLevel(logging.INFO)
logger.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'))
New Paste
Go to most recent paste.