33import sys
44import os
55import re
6+ import logging
67
78import sublime
89from sublime_plugin import WindowCommand , EventListener , TextCommand
910from Default .paragraph import expand_to_paragraph
1011
1112from .SQLToolsAPI import Utils
12- from .SQLToolsAPI .Log import Log , Logger
1313from .SQLToolsAPI .Storage import Storage , Settings
1414from .SQLToolsAPI .Connection import Connection
1515from .SQLToolsAPI .History import History
3535connections = None
3636history = None
3737
38+ # create pluggin logger
39+ DEFAULT_LOG_LEVEL = logging .WARNING
40+ plugin_logger = logging .getLogger (__package__ )
41+ # some plugins are not playing by the rules and configure the root loger
42+ plugin_logger .propagate = False
43+ if not plugin_logger .handlers :
44+ plugin_logger_handler = logging .StreamHandler ()
45+ plugin_logger_formatter = logging .Formatter ("[{name}] {levelname}: {message}" , style = '{' )
46+ plugin_logger_handler .setFormatter (plugin_logger_formatter )
47+ plugin_logger .addHandler (plugin_logger_handler )
48+ plugin_logger .setLevel (DEFAULT_LOG_LEVEL )
49+ logger = logging .getLogger (__name__ )
50+
3851
3952def getSublimeUserFolder ():
4053 return os .path .join (sublime .packages_path (), 'User' )
@@ -60,27 +73,30 @@ def startPlugin():
6073 try :
6174 settings = Settings (SETTINGS_FILENAME , default = SETTINGS_FILENAME_DEFAULT )
6275 except Exception as e :
63- msg = __package__ + " : Failed to parse " + SQLTOOLS_SETTINGS_FILE + " file"
64- print (msg + "\n Error: " + str (e ))
76+ msg = '{0} : Failed to parse {1} file' . format ( __package__ , SQLTOOLS_SETTINGS_FILE )
77+ logging . error (msg + "\n Error: " + str (e ))
6578 Window ().status_message (msg )
6679
6780 try :
6881 connections = Settings (CONNECTIONS_FILENAME , default = CONNECTIONS_FILENAME_DEFAULT )
6982 except Exception as e :
70- msg = __package__ + " : Failed to parse " + SQLTOOLS_CONNECTIONS_FILE + " file"
71- print (msg + "\n Error: " + str (e ))
83+ msg = '{0} : Failed to parse {1} file' . format ( __package__ , SQLTOOLS_CONNECTIONS_FILE )
84+ logging . error (msg + "\n Error: " + str (e ))
7285 Window ().status_message (msg )
7386
7487 queries = Storage (QUERIES_FILENAME , default = QUERIES_FILENAME_DEFAULT )
7588 history = History (settings .get ('history_size' , 100 ))
7689
77- Logger .setPackageVersion (__version__ )
78- Logger .setPackageName (__package__ )
79- Logger .setLogging (settings .get ('debug' , True ))
90+ if settings .get ('debug' , False ):
91+ plugin_logger .setLevel (logging .DEBUG )
92+ else :
93+ plugin_logger .setLevel (DEFAULT_LOG_LEVEL )
94+
8095 Connection .setTimeout (settings .get ('thread_timeout' , 15 ))
8196 Connection .setHistoryManager (history )
8297
83- Log (__package__ + " Loaded!" )
98+ logger .info ('plugin (re)loaded' )
99+ logger .info ('version %s' , __version__ )
84100
85101
86102def getConnections ():
@@ -122,7 +138,6 @@ def loadDefaultConnection():
122138 default = connections .get ('default' , False )
123139 if not default :
124140 return
125- Log ('Default database set to ' + default + '. Loading options and auto complete.' )
126141 return default
127142
128143
@@ -308,11 +323,15 @@ def checkDefaultConnection():
308323 default = loadDefaultConnection ()
309324 if not default :
310325 return
326+
327+ logger .info ('default connection is set to "%s"' , default )
328+
311329 try :
312- ST .conn = ST .connectionList .get (default )
330+ ST .conn = ST .connectionList [default ]
331+ except KeyError as e :
332+ logger .error ('connection "%s" set as default, but it does not exists' , default )
333+ else :
313334 ST .loadConnectionData ()
314- except Exception :
315- Log ("Invalid connection setted" )
316335
317336 @staticmethod
318337 def loadConnectionData (tablesCallback = None , columnsCallback = None , functionsCallback = None ):
@@ -372,7 +391,7 @@ def setConnection(index, tablesCallback=None, columnsCallback=None, functionsCal
372391 connListNames .sort ()
373392 ST .conn = ST .connectionList .get (connListNames [index ])
374393 ST .loadConnectionData (tablesCallback , columnsCallback , functionsCallback )
375- Log ('Connection {0} selected' .format (ST .conn ))
394+ logger . info ('Connection " {0}" selected' .format (ST .conn ))
376395
377396 @staticmethod
378397 def selectConnection (tablesCallback = None , columnsCallback = None , functionsCallback = None ):
@@ -452,7 +471,7 @@ def on_query_completions(view, prefix, locations):
452471 lineStr = view .substr (lineStartToLocation )
453472 prefix = re .split ('[^`\" \w.\$]+' , lineStr ).pop ()
454473 except Exception as e :
455- Log (e )
474+ logger . debug (e )
456475
457476 # use current paragraph as sql text to parse
458477 sqlRegion = expand_to_paragraph (view , currentPoint )
@@ -732,7 +751,6 @@ def reload():
732751 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Completion" ])
733752 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Storage" ])
734753 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.History" ])
735- imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Log" ])
736754 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Command" ])
737755 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Connection" ])
738756 except Exception as e :
@@ -760,9 +778,9 @@ def plugin_loaded():
760778 from package_control import events
761779
762780 if events .install (__name__ ):
763- Log ('Installed %s!' % events .install (__name__ ))
781+ logger . info ('Installed %s!' % events .install (__name__ ))
764782 elif events .post_upgrade (__name__ ):
765- Log ('Upgraded to %s!' % events .post_upgrade (__name__ ))
783+ logger . info ('Upgraded to %s!' % events .post_upgrade (__name__ ))
766784 sublime .message_dialog (('{0} was upgraded.' +
767785 'If you have any problem,' +
768786 'just restart your Sublime Text.'
@@ -774,3 +792,8 @@ def plugin_loaded():
774792
775793 startPlugin ()
776794 reload ()
795+
796+
797+ def plugin_unloaded ():
798+ if plugin_logger .handlers :
799+ plugin_logger .handlers .pop ()
0 commit comments