|
1 | 1 | # encoding: utf-8 |
2 | 2 |
|
| 3 | +import logging |
3 | 4 | import os |
4 | 5 |
|
5 | 6 | from flasgger import Swagger |
|
9 | 10 |
|
10 | 11 | from project.config import CONFIG |
11 | 12 | from pyms.healthcheck import healthcheck_blueprint |
| 13 | +from pyms.logger import CustomJsonFormatter |
12 | 14 | from pyms.models import db |
13 | 15 | from pyms.tracer.main import TracerModule |
14 | 16 |
|
15 | 17 | __author__ = "Alberto Vara" |
16 | 18 | __email__ = "a.vara.1986@gmail.com" |
17 | 19 | __version__ = "0.0.1" |
18 | 20 |
|
| 21 | +logger = logging.getLogger('jaeger_tracing') |
| 22 | +logger.setLevel(logging.DEBUG) |
| 23 | + |
19 | 24 | ENVIRONMENT = os.environ.get("ENVIRONMENT", "default") |
20 | 25 |
|
21 | 26 | SWAGGER_CONFIG = { |
@@ -107,10 +112,19 @@ def create_app(): |
107 | 112 | app.register_blueprint(views_blueprint) |
108 | 113 | app.register_blueprint(healthcheck_blueprint) |
109 | 114 |
|
| 115 | + # Inject Modules |
110 | 116 | # Inject Modules |
111 | 117 | if not app.config["TESTING"] and not app.config["DEBUG"]: |
112 | | - injector = Injector([TracerModule(app)]) |
| 118 | + log_handler = logging.StreamHandler() |
| 119 | + formatter = CustomJsonFormatter('(timestamp) (level) (name) (module) (funcName) (lineno) (message)') |
| 120 | + formatter.add_service_name(app.config["APP_NAME"]) |
| 121 | + tracer = TracerModule(app) |
| 122 | + injector = Injector([tracer]) |
113 | 123 | FlaskInjector(app=app, injector=injector) |
| 124 | + formatter.add_trace_span(tracer.tracer) |
| 125 | + log_handler.setFormatter(formatter) |
| 126 | + app.logger.addHandler(log_handler) |
| 127 | + app.logger.setLevel(logging.INFO) |
114 | 128 |
|
115 | 129 | with app.test_request_context(): |
116 | 130 | db.create_all() |
|
0 commit comments