8000 Replace the logging.basicConfig by a proper configuration (#243) · python-lsp/python-lsp-server@897980b · GitHub
[go: up one dir, main page]

Skip to content

Commit 897980b

Browse files
evandrocoangatesn
authored andcommitted
Replace the logging.basicConfig by a proper configuration (#243)
1 parent 344b787 commit 897980b

File tree

1 file changed

+30
-16
lines changed

1 file changed

+30
-16
lines changed

pyls/__main__.py

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import logging
55
import logging.config
66
import sys
7+
78
from . import language_server
89
from .python_ls import PythonLanguageServer
910

@@ -47,22 +48,7 @@ def main():
4748
parser = argparse.ArgumentParser()
4849
add_arguments(parser)
4950
args = parser.parse_args()
50-
51-
if args.log_config:
52-
with open(args.log_config, 'r') as f:
53-
logging.config.dictConfig(json.load(f))
54-
elif args.log_file:
55-
logging.basicConfig(filename=args.log_file, format=LOG_FORMAT)
56-
else:
57-
logging.basicConfig(format=LOG_FORMAT)
58-
59-
if args.verbose == 0:
60-
level = logging.WARNING
61-
elif args.verbose == 1:
62-
level = logging.INFO
63-
elif args.verbose >= 2:
64-
level = logging.DEBUG
65-
logging.getLogger().setLevel(level)
51+
_configure_logger(args)
6652

6753
if args.tcp:
6854
language_server.start_tcp_lang_server(args.host, args.port, PythonLanguageServer)
@@ -95,3 +81,31 @@ def _binary_stdio():
9581
stdin, stdout = sys.stdin, sys.stdout
9682

9783
return stdin, stdout
84+
85+
86+
def _configure_logger(verbose=0, log_config=None, log_file=None):
87+
root_logger = logging.root
88+
89+
if log_config:
90+
with open(log_config, 'r') as f:
91+
logging.config.dictConfig(json.load(f))
92+
else:
93+
formatter = logging.Formatter(LOG_FORMAT)
94+
if log_file:
95+
log_handler = logging.handlers.RotatingFileHandler(
96+
log_file, mode='a', maxBytes=50*1024*1024,
97+
backupCount=10, encoding=None, delay=0
98+
)
99+
else:
100+
log_handler = logging.StreamHandler()
101+
log_handler.setFormatter(formatter)
102+
root_logger.addHandler(log_handler)
103+
104+
if verbose == 0:
105+
level = logging.WARNING
106+
elif verbose == 1:
107+
level = logging.INFO
108+
elif verbose >= 2:
109+
level = logging.DEBUG
110+
111+
root_logger.setLevel(level)

0 commit comments

Comments
 (0)
0