9
9
import threading
10
10
import warnings
11
11
import re
12
+ import logging
12
13
13
14
from functools import wraps
14
15
@@ -247,6 +248,9 @@ def add_url(name, view_func, methods=('GET',)):
247
248
self ._watch_thread = None
248
249
self ._changed_assets = []
249
250
251
+ self .logger = logging .getLogger (name )
252
+ self .logger .addHandler (logging .StreamHandler (stream = sys .stdout ))
253
+
250
254
@property
251
255
def layout (self ):
252
256
return self ._layout
@@ -1029,7 +1033,9 @@ def enable_dev_tools(self,
1029
1033
dev_tools_serve_dev_bundles = None ,
1030
1034
dev_tools_hot_reload = None ,
1031
1035
dev_tools_hot_reload_interval = None ,
1032
- dev_tools_hot_reload_watch_interval = None ):
1036
+ dev_tools_hot_reload_watch_interval = None ,
1037
+ dev_tools_silence_routes_logging = None ,
1038
+ ):
1033
1039
"""
1034
1040
Activate the dev tools, called by `run_server`. If your application is
1035
1041
served by wsgi and you want to activate the dev tools, you can call
@@ -1057,6 +1063,9 @@ def enable_dev_tools(self,
1057
1063
assets folder are walked for changes. Available as
1058
1064
`DASH_HOT_RELOAD_WATCH_INTERVAL` environ var.
1059
1065
:type dev_tools_hot_reload_watch_interval: float
1066
+ :param dev_tools_silence_routes_logging: Silence the `werkzeug` logger,
1067
+ will remove all routes logging.
1068
+ :type dev_tools_silence_routes_logging: bool
1060
1069
:return: debug
1061
1070
"""
1062
1071
env = _configs .env_configs ()
@@ -1085,6 +1094,15 @@ def enable_dev_tools(self,
1085
1094
default = 0.5
1086
1095
)
1087
1096
)
1097
+ self ._dev_tools ['silence_routes_logging' ] = _configs .get_config (
1098
+ 'silence_routes_logging' , dev_tools_silence_routes_logging , env ,
1099
+ default = debug ,
1100
+ is_bool = True ,
1101
+ )
1102
+
1103
+ if self ._dev_tools .silence_routes_logging :
1104
+ logging .getLogger ('werkzeug' ).setLevel (logging .ERROR )
1105
+ self .logger .setLevel (logging .INFO )
1088
1106
1089
1107
if self ._dev_tools .hot_reload :
1090
1108
self ._reload_hash = _generate_hash ()
@@ -1154,6 +1172,7 @@ def run_server(self,
1154
1172
dev_tools_hot_reload = None ,
1155
1173
dev_tools_hot_reload_interval = None ,
1156
1174
dev_tools_hot_reload_watch_interval = None ,
1175
+ dev_tools_silence_routes_logging = None ,
1157
1176
** flask_run_options ):
1158
1177
"""
1159
1178
Start the flask server in local mode, you should not run this on a
@@ -1179,7 +1198,19 @@ def run_server(self,
1179
1198
dev_tools_serve_dev_bundles ,
1180
1199
dev_tools_hot_reload ,
1181
1200
dev_tools_hot_reload_interval ,
1182
- dev_tools_hot_reload_watch_interval
1201
+ dev_tools_hot_reload_watch_interval ,
1202
+ dev_tools_silence_routes_logging
1183
1203
)
1204
+
1205
+ if self ._dev_tools .silence_routes_logging :
1206
+ # Since it's silenced, the address don't show anymore.
1207
+ host = flask_run_options .get ('host' , '127.0.0.1' )
1208
+ ssl_context = flask_run_options .get ('ssl_context' )
1209
+ self .logger .info (
1210
+ 'Running on {}://{}:{}{}' .format (
1211
+ 'https' if ssl_context else 'http' ,
1212
+ host , port , self .config .requests_pathname_prefix )
1213
+ )
1214
+
1184
1215
self .server .run (port = port , debug = debug ,
1185
1216
** flask_run_options )
0 commit comments