Skip to content

Commit a233837

Browse files
authored
Fix #430 by adding a new option to customize dev server (http.server) logging (#431)
* Fix #430 by adding a new option to customize dev server (http.server) logging * Fix docstring
1 parent 7f005d8 commit a233837

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

slack_bolt/app/app.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import time
66
from concurrent.futures.thread import ThreadPoolExecutor
77
from http.server import SimpleHTTPRequestHandler, HTTPServer
8-
from typing import List, Union, Pattern, Callable, Dict, Optional, Sequence
8+
from typing import List, Union, Pattern, Callable, Dict, Optional, Sequence, Any
99

1010
from slack_sdk.errors import SlackApiError
1111
from slack_sdk.oauth.installation_store import InstallationStore
@@ -415,7 +415,12 @@ def process_before_response(self) -> bool:
415415
# -------------------------
416416
# standalone server
417417

418-
def start(self, port: int = 3000, path: str = "/slack/events") -> None:
418+
def start(
419+
self,
420+
port: int = 3000,
421+
path: str = "/slack/events",
422+
http_server_logger_enabled: bool = True,
423+
) -> None:
419424
"""Starts a web server for local development.
420425
421426
# With the default settings, `http://localhost:3000/slack/events`
@@ -428,12 +433,14 @@ def start(self, port: int = 3000, path: str = "/slack/events") -> None:
428433
Args:
429434
port: The port to listen on (Default: 3000)
430435
path: The path to handle request from Slack (Default: `/slack/events`)
436+
http_server_logger_enabled: The flag to enable http.server logging if True (Default: True)
431437
"""
432438
self._development_server = SlackAppDevelopmentServer(
433439
port=port,
434440
path=path,
435441
app=self,
436442
oauth_flow=self.oauth_flow,
443+
http_server_logger_enabled=http_server_logger_enabled,
437444
)
438445
self._development_server.start()
439446

@@ -1309,6 +1316,7 @@ def __init__(
13091316
path: str,
13101317
app: App,
13111318
oauth_flow: Optional[OAuthFlow] = None,
1319+
http_server_logger_enabled: bool = True,
13121320
):
13131321
"""Slack App Development Server
13141322
@@ -1325,18 +1333,25 @@ def __init__(
13251333
path: the path to receive incoming requests
13261334
app: the `App` instance to execute
13271335
oauth_flow: the `OAuthFlow` instance to use for OAuth flow
1336+
http_server_logger_enabled: The flag to turn on/off http.server's logging
13281337
"""
13291338
self._port: int = port
13301339
self._bolt_endpoint_path: str = path
13311340
self._bolt_app: App = app
13321341
self._bolt_oauth_flow: Optional[OAuthFlow] = oauth_flow
1342+
self._http_server_logger_enabled = http_server_logger_enabled
13331343

13341344
_port: int = self._port
13351345
_bolt_endpoint_path: str = self._bolt_endpoint_path
13361346
_bolt_app: App = self._bolt_app
13371347
_bolt_oauth_flow: Optional[OAuthFlow] = self._bolt_oauth_flow
1348+
_http_server_logger_enabled = self._http_server_logger_enabled
13381349

13391350
class SlackAppHandler(SimpleHTTPRequestHandler):
1351+
def log_message(self, format: str, *args: Any) -> None:
1352+
if _http_server_logger_enabled is True:
1353+
super().log_message(format, *args)
1354+
13401355
def do_GET(self):
13411356
if _bolt_oauth_flow:
13421357
request_path, _, query = self.path.partition("?")

0 commit comments

Comments
 (0)