Skip to content

Commit 8dd37e9

Browse files
committed
Consolidate logging in its own module
1 parent aa33085 commit 8dd37e9

6 files changed

Lines changed: 26 additions & 10 deletions

File tree

examples/chem-sync-local-flask/docker-compose.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ services:
1212
environment:
1313
# Don't set debug in production!
1414
- FLASK_DEBUG=1
15+
# Enable debug logging for Python Benchling App. This is not native, specific to this example implementation
16+
- BENCHLING_APP_LOG_LEVEL=DEBUG
1517
# Client ID is not sensitive and is the same across all tenants, so could be hard-coded
1618
# You might choose to have two different Apps for dev vs prod, which would have different client IDs
1719
- CLIENT_ID

examples/chem-sync-local-flask/local_app/app.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
import logging
21
from threading import Thread
32

43
from benchling_sdk.apps.helpers.webhook_helpers import verify_app_installation
54
from flask import Flask, request
65

76
from local_app.benchling_app.handler import handle_webhook
7+
from local_app.lib.logger import get_logger
88

9-
# Enable basic logging for development debugging
10-
logging.basicConfig(format="%(name)s - %(asctime)s - %(message)s", level=logging.DEBUG)
11-
logger = logging.getLogger(__name__)
9+
logger = get_logger()
1210

1311

1412
def create_app() -> Flask:

examples/chem-sync-local-flask/local_app/benchling_app/canvas_interaction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import logging
21
import re
32
from typing import cast
43
from urllib.parse import quote
@@ -20,9 +19,10 @@
2019
SEARCH_BUTTON_ID,
2120
SEARCH_TEXT_ID,
2221
)
22+
from local_app.lib.logger import get_logger
2323
from local_app.lib.pub_chem import get_by_cid, search
2424

25-
logger = logging.getLogger(__name__)
25+
logger = get_logger()
2626

2727

2828
class UnsupportedButtonError(Exception):

examples/chem-sync-local-flask/local_app/benchling_app/handler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import logging
21
from typing import Any
32

43
from benchling_sdk.models.webhooks.v0 import (
@@ -10,8 +9,9 @@
109
from local_app.benchling_app.canvas_interaction import route_interaction_webhook
1110
from local_app.benchling_app.setup import init_app_from_webhook
1211
from local_app.benchling_app.views.canvas_initialize import render_search_canvas
12+
from local_app.lib.logger import get_logger
1313

14-
logger = logging.getLogger(__name__)
14+
logger = get_logger()
1515

1616

1717
class UnsupportedWebhookError(Exception):

examples/chem-sync-local-flask/local_app/benchling_app/molecules.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import logging
21
from typing import Any
32

43
from benchling_sdk.apps.framework import App
@@ -10,7 +9,9 @@
109
MoleculeStructureStructureFormat,
1110
)
1211

13-
logger = logging.getLogger(__name__)
12+
from local_app.lib.logger import get_logger
13+
14+
logger = get_logger()
1415

1516

1617
def create_molecule(app: App, chemical_result: dict[str, Any]) -> Molecule:
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import logging
2+
import os
3+
4+
# Enable basic logging for development debugging
5+
logging.basicConfig(format="%(name)s - %(asctime)s - {%(pathname)s:%(lineno)d} - %(message)s",
6+
level=logging.WARNING)
7+
8+
9+
# Get a logger for our App, with DEBUG enabled by default specifically for our logging
10+
# but not other libraries
11+
def get_logger(name: str = "benchling-app") -> logging.Logger:
12+
level = os.environ.get("BENCHLING_APP_LOG_LEVEL", "INFO").upper()
13+
logger = logging.getLogger(name)
14+
logger.setLevel(level)
15+
return logger

0 commit comments

Comments
 (0)