pain.py
This commit is contained in:
parent
bb8da9d2b6
commit
7d99e7a94f
50
v6d2ctx/pain.py
Normal file
50
v6d2ctx/pain.py
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import os
|
||||||
|
import time
|
||||||
|
|
||||||
|
from rainbowadn.instrument import Instrumentation
|
||||||
|
|
||||||
|
|
||||||
|
class ALog(Instrumentation):
|
||||||
|
start = time.time()
|
||||||
|
|
||||||
|
def time(self):
|
||||||
|
return time.time() - self.start
|
||||||
|
|
||||||
|
async def instrument(self, method, *args, **kwargs):
|
||||||
|
key = os.urandom(4).hex()
|
||||||
|
print(f'[{self.time(): 11.3f}] +{key} +A"{self.methodname}"')
|
||||||
|
try:
|
||||||
|
result = await method(*args, **kwargs)
|
||||||
|
except BaseException:
|
||||||
|
print(f'[{self.time(): 11.3f}] !{key} !A"{self.methodname}"')
|
||||||
|
raise
|
||||||
|
else:
|
||||||
|
print(f'[{self.time(): 11.3f}] -{key} -A"{self.methodname}"')
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
class SLog(Instrumentation):
|
||||||
|
def time(self):
|
||||||
|
return time.time() - ALog.start
|
||||||
|
|
||||||
|
def instrument(self, method, *args, **kwargs):
|
||||||
|
key = os.urandom(4).hex()
|
||||||
|
print(f'[{self.time(): 11.3f}] +{key} +S"{self.methodname}"')
|
||||||
|
try:
|
||||||
|
result = method(*args, **kwargs)
|
||||||
|
except BaseException:
|
||||||
|
print(f'[{self.time(): 11.3f}] !{key} !S"{self.methodname}"')
|
||||||
|
raise
|
||||||
|
else:
|
||||||
|
print(f'[{self.time(): 11.3f}] -{key} -S"{self.methodname}"')
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
class FrameTrace(Instrumentation):
|
||||||
|
async def instrument(self, method, *args, **kwargs):
|
||||||
|
import inspect
|
||||||
|
frame = inspect.currentframe()
|
||||||
|
while frame is not None:
|
||||||
|
print(frame.f_code.co_filename, frame.f_lineno)
|
||||||
|
frame = frame.f_back
|
||||||
|
return await method(*args, **kwargs)
|
Loading…
Reference in New Issue
Block a user