1616__all__ = ('tcp_session' , 'socket_session' , 'stdio_session' , 'child_session' ,
1717 'start_host' , 'autocmd' , 'command' , 'encoding' , 'function' ,
1818 'plugin' , 'rpc_export' , 'Host' , 'DecodeHook' , 'Nvim' ,
19- 'SessionHook' , 'shutdown_hook' , 'attach' )
19+ 'SessionHook' , 'shutdown_hook' , 'attach' , 'setup_logging' )
2020
2121
2222def start_host (session = None ):
@@ -43,23 +43,8 @@ def start_host(session=None):
4343 if not plugins :
4444 sys .exit ('must specify at least one plugin as argument' )
4545
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+
6348 if not session :
6449 session = stdio_session ()
6550 host = Host (Nvim .from_session (session ))
@@ -95,6 +80,27 @@ def attach(session_type, address=None, port=None, path=None, argv=None):
9580 return Nvim .from_session (session )
9681
9782
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+
98104# Required for python 2.6
99105class NullHandler (logging .Handler ):
100106 def emit (self , record ):
0 commit comments