# Super Log
### Funcion
Enriquece la informacion de los logs para nuestro procesos python,
los mensajes vienen en formato json para poder ser usados
por cualquier software de captura de logs, ejemplo: New Relic.
## Pasos
### Intalar librerira
pip install superlog
### Importar la librerira:
from superlog.log import SuperLog
### Agregar identificador de proyecto e instanciar la clase
log = SuperLog(app_name="my_app")
# si se desea agregar color para las ejecuciones locales puede usar la siguiente opcioĆ³n
log = SuperLog(app_name="my_app", colors = True)
### Metodo decorador - tiempo de ejecucion por funcion:
@log.time_func_analyze
def mi_funcion():
print("inicio")
...
time.sleep(1)
return True
## Tiempo de ejecucion de una funcion
mi_funcion()
# ejemplo de salida
{"level":"INFO","timestamp":"2022-05-06 13:27:27,981","app":"my_app","log":{"total": 1.01, "function": "main"}}
### Metodo decorador - tiempo total:
@log.time_func_analyze(total_execution=True)
def funcion_principal():
print("inicio")
...
time.sleep(1)
return True
## Tiempo de ejecucion de una funcion
funcion_principal()
## ejemplo de salida
{"level":"INFO","timestamp":"2022-05-06 13:31:35,701","app":"my_app","log":{"total_execution": 1.0}}
### Manejo de mensajes y errores automaticos:
## mensaje normal
log.print("hola mundo")
## ejemplo de salida
{"level":"INFO","timestamp":"2022-05-06 13:35:00,091","app":"my_app","log":{"message": "Hola Mundo", "execution": 0.01, "function": "main"}}
## mensaje error
## automaticamente superlog detecta los erres de los try y except e imprime toda la informacion correspondiente
## ejemplo:
try:
variable_no_existe
except:
log.print("Ocurrio un error")
##ejemplo salida
{"level":"ERROR","timestamp":"2022-05-06 13:37:48,257","app":"my_app","log":{"message": "Ocurrio un error", "execution": 0.01, "file": "/ruta/archivo.py", "line": "130", "function": "main", "statement": "['variable_no_existe\n']", "error": "<class 'NameError'>", "text": "name 'variable_no_existe' is not defined", "manual": false}}
### Manejo de errores manuales:
## En caso de querer querer usar errores de manera manual
## sin la necesidad de usar try y execpt, se puede realizar de la
## siguiente manera
def main():
log.error("Hola mundo error")
main()
## ejemplo de salida
{"level":"ERROR","timestamp":"2022-05-06 13:40:50,094","app":"my_app","log":{"message": "Hola mundo error", "execution": 0.01, "function": "main", "manual": true}}
### Manejo de warnings manuales:
def main():
log.warning("Hola mundo warning")
main()
## ejemplo de salida
{"level":"WARNING","timestamp":"2022-05-06 13:40:50,094","app":"my_app","log":{"message": "Hola mundo warning", "execution": 0.01, "function": "main", "manual": true}}
### Manejo de info manuales:
def main():
log.info("Hola mundo info")
main()
## ejemplo de salida
{"level":"INFO","timestamp":"2022-05-06 13:40:50,094","app":"my_app","log":{"message": "Hola mundo info", "execution": 0.01, "function": "main", "manual": true}}
Raw data
{
"_id": null,
"home_page": "https://github.com/retmago/superlog.git",
"name": "superlog",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "log newrelic metadata",
"author": "jsilva95",
"author_email": "jsilva2018.95@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/7e/0b/de9172b01abcc016d2f0a0fd95993cb84e35de729f503396b4bf2ab11f82/superlog-1.4.2.tar.gz",
"platform": null,
"description": "# Super Log\n### Funcion\n Enriquece la informacion de los logs para nuestro procesos python,\n los mensajes vienen en formato json para poder ser usados\n por cualquier software de captura de logs, ejemplo: New Relic.\n## Pasos\n### Intalar librerira\n pip install superlog\n### Importar la librerira:\n from superlog.log import SuperLog\n### Agregar identificador de proyecto e instanciar la clase\n log = SuperLog(app_name=\"my_app\")\n # si se desea agregar color para las ejecuciones locales puede usar la siguiente opcio\u00f3n\n log = SuperLog(app_name=\"my_app\", colors = True)\n### Metodo decorador - tiempo de ejecucion por funcion:\n @log.time_func_analyze\n def mi_funcion():\n print(\"inicio\")\n ...\n time.sleep(1)\n return True\n\n ## Tiempo de ejecucion de una funcion\n mi_funcion()\n\n # ejemplo de salida\n {\"level\":\"INFO\",\"timestamp\":\"2022-05-06 13:27:27,981\",\"app\":\"my_app\",\"log\":{\"total\": 1.01, \"function\": \"main\"}}\n\n### Metodo decorador - tiempo total:\n @log.time_func_analyze(total_execution=True)\n def funcion_principal():\n print(\"inicio\")\n ...\n time.sleep(1)\n return True\n\n ## Tiempo de ejecucion de una funcion\n funcion_principal()\n\n ## ejemplo de salida\n {\"level\":\"INFO\",\"timestamp\":\"2022-05-06 13:31:35,701\",\"app\":\"my_app\",\"log\":{\"total_execution\": 1.0}}\n \n### Manejo de mensajes y errores automaticos:\n ## mensaje normal\n log.print(\"hola mundo\")\n \n ## ejemplo de salida\n {\"level\":\"INFO\",\"timestamp\":\"2022-05-06 13:35:00,091\",\"app\":\"my_app\",\"log\":{\"message\": \"Hola Mundo\", \"execution\": 0.01, \"function\": \"main\"}}\n\n ## mensaje error\n ## automaticamente superlog detecta los erres de los try y except e imprime toda la informacion correspondiente\n ## ejemplo:\n\n try:\n variable_no_existe\n except:\n log.print(\"Ocurrio un error\")\n\n ##ejemplo salida\n {\"level\":\"ERROR\",\"timestamp\":\"2022-05-06 13:37:48,257\",\"app\":\"my_app\",\"log\":{\"message\": \"Ocurrio un error\", \"execution\": 0.01, \"file\": \"/ruta/archivo.py\", \"line\": \"130\", \"function\": \"main\", \"statement\": \"['variable_no_existe\\n']\", \"error\": \"<class 'NameError'>\", \"text\": \"name 'variable_no_existe' is not defined\", \"manual\": false}}\n\n### Manejo de errores manuales:\n ## En caso de querer querer usar errores de manera manual \n ## sin la necesidad de usar try y execpt, se puede realizar de la \n ## siguiente manera\n \n def main():\n log.error(\"Hola mundo error\")\n\n main()\n \n ## ejemplo de salida\n {\"level\":\"ERROR\",\"timestamp\":\"2022-05-06 13:40:50,094\",\"app\":\"my_app\",\"log\":{\"message\": \"Hola mundo error\", \"execution\": 0.01, \"function\": \"main\", \"manual\": true}}\n\n\n\n### Manejo de warnings manuales:\n \n def main():\n log.warning(\"Hola mundo warning\")\n\n main()\n \n ## ejemplo de salida\n {\"level\":\"WARNING\",\"timestamp\":\"2022-05-06 13:40:50,094\",\"app\":\"my_app\",\"log\":{\"message\": \"Hola mundo warning\", \"execution\": 0.01, \"function\": \"main\", \"manual\": true}}\n\n\n\n\n### Manejo de info manuales:\n \n def main():\n log.info(\"Hola mundo info\")\n\n main()\n \n ## ejemplo de salida\n {\"level\":\"INFO\",\"timestamp\":\"2022-05-06 13:40:50,094\",\"app\":\"my_app\",\"log\":{\"message\": \"Hola mundo info\", \"execution\": 0.01, \"function\": \"main\", \"manual\": true}}",
"bugtrack_url": null,
"license": "LGPL v3",
"summary": "Libreria para mostrar mayor cantidad de informacion en los logs de manera facil y poder ser usados en new relic",
"version": "1.4.2",
"split_keywords": [
"log",
"newrelic",
"metadata"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7e0bde9172b01abcc016d2f0a0fd95993cb84e35de729f503396b4bf2ab11f82",
"md5": "daea3b8b0324ba783308dd999b257c6a",
"sha256": "e6cda72f87806a2e3993815fa674a2443a1d530ecf8132c59fd4c5cc7b9c73bc"
},
"downloads": -1,
"filename": "superlog-1.4.2.tar.gz",
"has_sig": false,
"md5_digest": "daea3b8b0324ba783308dd999b257c6a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5505,
"upload_time": "2023-01-24T21:13:43",
"upload_time_iso_8601": "2023-01-24T21:13:43.411884Z",
"url": "https://files.pythonhosted.org/packages/7e/0b/de9172b01abcc016d2f0a0fd95993cb84e35de729f503396b4bf2ab11f82/superlog-1.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-24 21:13:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "retmago",
"github_project": "superlog.git",
"lcname": "superlog"
}