diff --git a/.env.example b/.env.example
index 4d2241e3..6ef60bc1 100644
--- a/.env.example
+++ b/.env.example
@@ -1,7 +1,7 @@
HOST=127.0.0.1
PORT=5000
-DEBUG=true
+DEBUG=false
LNBITS_ALLOWED_USERS=""
LNBITS_ADMIN_USERS=""
diff --git a/lnbits/app.py b/lnbits/app.py
index 9ab7c75d..a7c8fdaf 100644
--- a/lnbits/app.py
+++ b/lnbits/app.py
@@ -1,11 +1,9 @@
import asyncio
import importlib
+import logging
import sys
import traceback
import warnings
-
-from loguru import logger
-
from http import HTTPStatus
from fastapi import FastAPI, Request
@@ -14,6 +12,7 @@ from fastapi.middleware.cors import CORSMiddleware
from fastapi.middleware.gzip import GZipMiddleware
from fastapi.responses import JSONResponse
from fastapi.staticfiles import StaticFiles
+from loguru import logger
import lnbits.settings
from lnbits.core.tasks import register_task_listeners
@@ -199,8 +198,33 @@ def register_exception_handlers(app: FastAPI):
def configure_logger() -> None:
logger.remove()
log_level: str = "DEBUG" if lnbits.settings.DEBUG else "INFO"
- if lnbits.settings.DEBUG:
- fmt: str = "{time:YYYY-MM-DD HH:mm:ss.SS} | {level: <6} | {name}:{function}:{line} | {message}"
- else:
- fmt: str = "{time:YYYY-MM-DD HH:mm:ss.SS} | {level} | {message}"
- logger.add(sys.stderr, level=log_level, format=fmt)
+ formatter = Formatter()
+ logger.add(sys.stderr, level=log_level, format=formatter.format)
+
+ logging.getLogger("uvicorn").handlers = [InterceptHandler()]
+ logging.getLogger("uvicorn.access").handlers = [InterceptHandler()]
+
+
+class Formatter:
+ def __init__(self):
+ self.padding = 0
+ self.minimal_fmt: str = "{time:YYYY-MM-DD HH:mm:ss.SS} | {level} | {message}\n"
+ if lnbits.settings.DEBUG:
+ self.fmt: str = "{time:YYYY-MM-DD HH:mm:ss.SS} | {level: <4} | {name}:{function}:{line} | {message}\n"
+ else:
+ self.fmt: str = self.minimal_fmt
+
+ def format(self, record):
+ function = "{function}".format(**record)
+ if function == "emit": # uvicorn logs
+ return self.minimal_fmt
+ return self.fmt
+
+
+class InterceptHandler(logging.Handler):
+ def emit(self, record):
+ try:
+ level = logger.level(record.levelname).name
+ except ValueError:
+ level = record.levelno
+ logger.log(level, record.getMessage())