Skip to content

Commit 6a5a7a0

Browse files
committed
HDX-10202 set log level from env vars
1 parent 31e9ae1 commit 6a5a7a0

File tree

3 files changed

+51
-2
lines changed

3 files changed

+51
-2
lines changed

docker/hapi_run

+10
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@ else
1919
envsubst < /srv/hapi/docker/unit.json.tpl > /var/lib/unit/conf.json
2020
fi
2121

22+
# LOGGING_CONF_FILE needs to be set before substituting app.conf.tpl
23+
export LOGGING_CONF_FILE=/srv/logging.conf
24+
25+
# regenerate logging.conf
26+
export LOG_LEVEL="${LOG_LEVEL:-INFO}"
27+
[ ! -z "${LOG_LEVEL_CONSOLE}" ] || export LOG_LEVEL_CONSOLE=${LOG_LEVEL}
28+
[ ! -z "${LOG_LEVEL_JSON}" ] || export LOG_LEVEL_JSON=${LOG_LEVEL}
29+
[ ! -z "${LOG_LEVEL_TXT}" ] || export LOG_LEVEL_TXT=${LOG_LEVEL}
30+
envsubst < /srv/hapi/docker/logging.conf.tpl > /srv/logging.conf
31+
2232
chmod 600 /var/lib/unit/conf.json
2333
chown -R unit /var/log/hapi
2434

docker/logging.conf.tpl

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
[loggers]
2+
keys=root
3+
4+
[handlers]
5+
keys=consoleHandler, fileHandler, jsonFileHandler
6+
7+
[formatters]
8+
keys=simpleFormatter, jsonFormatter
9+
10+
[logger_root]
11+
level=${LOG_LEVEL}
12+
handlers=consoleHandler, fileHandler, jsonFileHandler
13+
14+
15+
[handler_consoleHandler]
16+
class=StreamHandler
17+
level=${LOG_LEVEL_CONSOLE}
18+
formatter=simpleFormatter
19+
args=(sys.stdout,)
20+
21+
[handler_fileHandler]
22+
class = FileHandler
23+
args = ('/var/log/hapi/hapi.log','a')
24+
level = ${LOG_LEVEL_TXT}
25+
formatter = simpleFormatter
26+
27+
[handler_jsonFileHandler]
28+
class = FileHandler
29+
args = ('/var/log/hapi/hapi-json.log','a')
30+
level = ${LOG_LEVEL_JSON}
31+
formatter = jsonFormatter
32+
33+
[formatter_simpleFormatter]
34+
format=[%(process)d - %(thread)d] %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)d] %(message)s
35+
datefmt=
36+
37+
[formatter_jsonFormatter]
38+
format = %(process)d %(thread)d %(asctime)s %(levelname) %(threadName)s %(name)s %(lineno)d %(message)s %(funcName)s
39+
class = pythonjsonlogger.jsonlogger.JsonFormatter

main.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22
import logging.config
3+
import os
34

45
logging.config.fileConfig('logging.conf')
56

@@ -153,6 +154,5 @@ def home():
153154
async def resp_validation_exception_handler(request: Request, exc: ResponseValidationError):
154155
return await response_validation_error_handler(request, exc)
155156

156-
157157
if __name__ == '__main__':
158-
uvicorn.run(app, host='0.0.0.0', port=8844, log_config='logging.conf')
158+
uvicorn.run(app, host='0.0.0.0', port=8844, log_config=os.getenv('LOGGING_CONF_FILE','logging.conf'))

0 commit comments

Comments
 (0)