16
16
__all__ = ('tcp_session' , 'socket_session' , 'stdio_session' , 'child_session' ,
17
17
'start_host' , 'autocmd' , 'command' , 'encoding' , 'function' ,
18
18
'plugin' , 'rpc_export' , 'Host' , 'DecodeHook' , 'Nvim' ,
19
- 'SessionHook' , 'shutdown_hook' , 'attach' )
19
+ 'SessionHook' , 'shutdown_hook' , 'attach' , 'setup_logging' )
20
20
21
21
22
22
def start_host (session = None ):
@@ -43,23 +43,8 @@ def start_host(session=None):
43
43
if not plugins :
44
44
sys .exit ('must specify at least one plugin as argument' )
45
45
46
- logger = logging .getLogger (__name__ )
47
- if 'NVIM_PYTHON_LOG_FILE' in os .environ :
48
- logfile = (os .environ ['NVIM_PYTHON_LOG_FILE' ].strip () +
49
- '_' + str (os .getpid ()))
50
- handler = logging .FileHandler (logfile , 'w' )
51
- handler .formatter = logging .Formatter (
52
- '%(asctime)s [%(levelname)s @ '
53
- '%(filename)s:%(funcName)s:%(lineno)s] %(process)s - %(message)s' )
54
- logging .root .addHandler (handler )
55
- level = logging .INFO
56
- if 'NVIM_PYTHON_LOG_LEVEL' in os .environ :
57
- l = getattr (logging ,
58
- os .environ ['NVIM_PYTHON_LOG_LEVEL' ].strip (),
59
- level )
60
- if isinstance (l , int ):
61
- level = l
62
- logger .setLevel (level )
46
+ setup_logging ()
47
+
63
48
if not session :
64
49
session = stdio_session ()
65
50
host = Host (Nvim .from_session (session ))
@@ -95,6 +80,27 @@ def attach(session_type, address=None, port=None, path=None, argv=None):
95
80
return Nvim .from_session (session )
96
81
97
82
83
+ def setup_logging ():
84
+ """Setup logging according to environment variables."""
85
+ logger = logging .getLogger (__name__ )
86
+ if 'NVIM_PYTHON_LOG_FILE' in os .environ :
87
+ logfile = (os .environ ['NVIM_PYTHON_LOG_FILE' ].strip () +
88
+ '_' + str (os .getpid ()))
89
+ handler = logging .FileHandler (logfile , 'w' )
90
+ handler .formatter = logging .Formatter (
91
+ '%(asctime)s [%(levelname)s @ '
92
+ '%(filename)s:%(funcName)s:%(lineno)s] %(process)s - %(message)s' )
93
+ logging .root .addHandler (handler )
94
+ level = logging .INFO
95
+ if 'NVIM_PYTHON_LOG_LEVEL' in os .environ :
96
+ l = getattr (logging ,
97
+ os .environ ['NVIM_PYTHON_LOG_LEVEL' ].strip (),
98
+ level )
99
+ if isinstance (l , int ):
100
+ level = l
101
+ logger .setLevel (level )
102
+
103
+
98
104
# Required for python 2.6
99
105
class NullHandler (logging .Handler ):
100
106
def emit (self , record ):
0 commit comments