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' )
@@ -74,13 +87,17 @@ def startPlugin():
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__ )
100+
84101
85102
86103def getConnections ():
@@ -122,7 +139,6 @@ def loadDefaultConnection():
122139 default = connections .get ('default' , False )
123140 if not default :
124141 return
125- Log ('Default database set to ' + default + '. Loading options and auto complete.' )
126142 return default
127143
128144
@@ -308,11 +324,15 @@ def checkDefaultConnection():
308324 default = loadDefaultConnection ()
309325 if not default :
310326 return
327+
328+ logger .info ('default connection is set to "%s"' , default )
329+
311330 try :
312- ST .conn = ST .connectionList .get (default )
331+ ST .conn = ST .connectionList [default ]
332+ except KeyError as e :
333+ logger .error ('connection "%s" set as default, but it does not exists' , default )
334+ else :
313335 ST .loadConnectionData ()
314- except Exception :
315- Log ("Invalid connection setted" )
316336
317337 @staticmethod
318338 def loadConnectionData (tablesCallback = None , columnsCallback = None , functionsCallback = None ):
@@ -372,7 +392,7 @@ def setConnection(index, tablesCallback=None, columnsCallback=None, functionsCal
372392 connListNames .sort ()
373393 ST .conn = ST .connectionList .get (connListNames [index ])
374394 ST .loadConnectionData (tablesCallback , columnsCallback , functionsCallback )
375- Log ('Connection {0} selected' .format (ST .conn ))
395+ logger . info ('Connection " {0}" selected' .format (ST .conn ))
376396
377397 @staticmethod
378398 def selectConnection (tablesCallback = None , columnsCallback = None , functionsCallback = None ):
@@ -452,7 +472,7 @@ def on_query_completions(view, prefix, locations):
452472 lineStr = view .substr (lineStartToLocation )
453473 prefix = re .split ('[^`\" \w.\$]+' , lineStr ).pop ()
454474 except Exception as e :
455- Log (e )
475+ logger . debug (e )
456476
457477 # use current paragraph as sql text to parse
458478 sqlRegion = expand_to_paragraph (view , currentPoint )
@@ -732,7 +752,6 @@ def reload():
732752 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Completion" ])
733753 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Storage" ])
734754 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.History" ])
735- imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Log" ])
736755 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Command" ])
737756 imp .reload (sys .modules [__package__ + ".SQLToolsAPI.Connection" ])
738757 except Exception as e :
@@ -760,9 +779,9 @@ def plugin_loaded():
760779 from package_control import events
761780
762781 if events .install (__name__ ):
763- Log ('Installed %s!' % events .install (__name__ ))
782+ logger . info ('Installed %s!' % events .install (__name__ ))
764783 elif events .post_upgrade (__name__ ):
765- Log ('Upgraded to %s!' % events .post_upgrade (__name__ ))
784+ logger . info ('Upgraded to %s!' % events .post_upgrade (__name__ ))
766785 sublime .message_dialog (('{0} was upgraded.' +
767786 'If you have any problem,' +
768787 'just restart your Sublime Text.'
@@ -774,3 +793,8 @@ def plugin_loaded():
774793
775794 startPlugin ()
776795 reload ()
796+
797+
798+ def plugin_unloaded ():
799+ if plugin_logger .handlers :
800+ plugin_logger .handlers .pop ()
0 commit comments