异步远程和本地调试工具
项目描述
泰克
Tekek [təʔkəʔ] 易于使用、快速、与服务器无关、异步、高度可配置的本地和远程日志记录工具
特征
- python内置记录器的半直接替换
- 异步
- 支持Websocket <super> (WIP) </super>
- 可靠的远程记录
- 可靠的文件记录
- 可靠的控制台日志记录
- 高度可配置
安装
Tekek 可通过PyPI获得,您可以使用安装它pip
python3 -m pip install tekek
导入Tekek并实例化。
你好世界
from tekek import Tekek
logger = Tekek(name=__name__)
tekek 默认自带 7 级日志记录
logger.log("MESSAGE")
logger.debug("MESSAGE")
logger.info("MESSAGE")
logger.warning("MESSAGE")
logger.error("MESSAGE")
logger.exception("MESSAGE")
logger.critical("MESSAGE")
示例基本用法:
def function_a():
logger.log("function a starts !", identifier="function_a")
try:
... # Some Algorithm
logger.info("finished doing things", "function_a")
except Exception as e:
logger.exception("Exception raised {}".format(e), "function_a")
logger.debug(identifier="function_a", message="function a finished !")
return
def function_b():
logger.error("this error came from function b", "function_a")
是的,它是常规功能而不是async功能。为什么 ?因为Tekek足够聪明,可以为您处理。不用担心它几乎不会影响您的应用程序性能
兼容性示例
桑尼奇
哦,是的,如果你要快点,你需要快速开发它!使用 tekek 作为您的日志记录和调试工具!
from sanic import Sanic
from sanic.response import json
from tekek import Tekek
app = Sanic("sanic_example")
logger = Tekek("sanic_example", app=app)
@app.route("/", methods=["GET"])
async def root(request):
logger.log("root accessed ! hello world!", "root")
return json(
{
"status": "Hello World!"
}
)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
快速 API
一个漂亮的 API 框架也需要一个漂亮的 tekek ;)
from fastapi import FastAPI
from tekek import Tekek
app = FastAPI()
logger = Tekek("my_fast_api", app=app)
@app.get("/")
async def root():
logger.log("root accessed ! hello world!", "root")
return {"status": "Hello World!"}
你自己的脚本!
当然,您可以使用自己的应用程序!让我们以创建my_app为例
使用coroutine功能
import asyncio
from tekek import Tekek
logger = Tekek("mah_own")
async def my_app(some_param: int):
logger.log(f"My App Run Successfully! {some_param}")
... # Your Beautiful app
return True
async def main():
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
await asyncio.gather(
my_app(3),
logger.start()
)
if __name__ == '__main__':
asyncio.run(main())
使用class
import asyncio
from tekek import Tekek
logger = Tekek("mah_own")
class MyApp:
def __init__(self):
self.some_vars = 3
async def app(self):
logger.log(f"App Ran! {self.some_vars}")
... # Your beautiful app
async def start(self):
asyncio.ensure_future(self.app())
my_app = MyApp()
async def main():
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
await asyncio.gather(
my_app.start(),
logger.start()
)
if __name__ == '__main__':
asyncio.run(main())
大实战!
继续阅读:使用文档
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
tekek-0.2.6.tar.gz
(10.2 kB
查看哈希)
内置分布
tekek-0.2.6-py3-none-any.whl
(21.1 kB
查看哈希)