44import re
55import json
66import websockets
7-
7+ import os
8+ import pathlib
9+ import traceback
810from logging .handlers import RotatingFileHandler
911
1012from process import ProcessManager
1315from notifier import Notifier
1416from command import Command
1517
18+
1619logging .basicConfig (
17- handlers = [RotatingFileHandler ('debug.log' , maxBytes = 100000 , backupCount = 10 )],
18- level = logging .DEBUG ,
19- format = "[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s" ,
20- datefmt = '%Y-%m-%dT%H:%M:%S' )
20+ handlers = [RotatingFileHandler (
21+ f'{ pathlib .Path (os .environ ["TEMP" ]).joinpath ("debug.log" ).resolve ()} ' , maxBytes = 100000 , backupCount = 10 )],
22+ level = logging .DEBUG ,
23+ format = "[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s" ,
24+ datefmt = '%Y-%m-%dT%H:%M:%S' )
25+
2126
2227class Plugin (object ):
2328
@@ -37,6 +42,7 @@ def __del__(self):
3742 self .loop .close ()
3843 except Exception as err :
3944 logging .critical (err )
45+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
4046
4147 async def listen (self ):
4248 try :
@@ -45,14 +51,16 @@ async def listen(self):
4551 await self .on_message ()
4652 except Exception as err :
4753 logging .critical (err )
54+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
4855
4956 async def _init_websocket (self ):
5057 uri = "ws://localhost:{}" .format (self .port )
5158 try :
52- self .websocket = await websockets .client . connect (uri )
59+ self .websocket = await websockets .connect (uri )
5360 return
5461 except Exception as err :
5562 logging .critical (err )
63+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
5664
5765 async def _register_websocket (self ):
5866 try :
@@ -66,20 +74,23 @@ async def _register_websocket(self):
6674 return
6775 except Exception as err :
6876 logging .critical (err )
77+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
6978
7079 async def on_message (self ):
7180 try :
7281 async for message in self .websocket :
7382 await self .process_data (json .loads (message ))
7483 except Exception as err :
7584 logging .critical (err )
85+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
7686
7787 async def send_message (self , event ):
7888 try :
7989 logging .info ("Sending event: {}" .format (event ))
8090 await self .websocket .send (event )
8191 except Exception as err :
8292 logging .critical (err )
93+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
8394
8495 def generate_command (self , data ):
8596 try :
@@ -93,6 +104,7 @@ def generate_command(self, data):
93104 return new_command
94105 except Exception as err :
95106 logging .critical (err )
107+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
96108
97109 async def process_data (self , data ):
98110 logging .info ("Processing data: {}" .format (data ))
@@ -111,6 +123,7 @@ async def process_data(self, data):
111123
112124 except Exception as err :
113125 logging .critical (err )
126+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
114127
115128
116129def parse_args (sys_args ):
@@ -128,31 +141,34 @@ def parse_args(sys_args):
128141 logging .info ("Flag: {}, Value: {}" .format (flag , value ))
129142 except Exception as err :
130143 logging .critical (err )
144+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
131145 return args
132146
133147
134148def main ():
135149 try :
136150 args = parse_args (sys .argv )
137- loop = asyncio .get_event_loop ()
138-
151+ logging .info (args )
152+ loop = asyncio .new_event_loop ()
153+ eloop = asyncio .get_event_loop ()
139154 os_manager = OSManager ()
140155 os_type = os_manager ._get_current_os ()
141156 notifier = Notifier (os_type )
142157 process_manager = ProcessManager (notifier )
143158
144159 plugin = Plugin (port = args ['port' ], pluginUUID = args ['pluginUUID' ],
145- registerEvent = args ['registerEvent' ], info = args ['info' ], loop = loop , process_manager = process_manager , os_manager = os_manager )
160+ registerEvent = args ['registerEvent' ], info = args ['info' ], loop = eloop , process_manager = process_manager , os_manager = os_manager )
146161
147- loop .run_until_complete (asyncio .gather (
162+ eloop .run_until_complete (asyncio .gather (
148163 plugin .listen (), process_manager .process ()))
149- loop .run_forever ()
150- loop .stop ()
151- loop .close ()
164+ eloop .run_forever ()
165+ eloop .stop ()
166+ eloop .close ()
152167 except Exception as err :
153168 logging .critical (err )
154- loop .stop ()
155- loop .close ()
169+ logging .critical (f"Traceback: { traceback .format_exc ()} " )
170+ eloop .stop ()
171+ eloop .close ()
156172
157173
158174if __name__ == '__main__' :
0 commit comments