loguru | Python logging made simple

 by   Delgan Python Version: 0.7.2 License: MIT

kandi X-RAY | loguru Summary

kandi X-RAY | loguru Summary

loguru is a Python library typically used in Logging applications. loguru has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has medium support. You can install using 'pip install loguru' or download it from GitHub, PyPI.

Python logging made (stupidly) simple
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              loguru has a medium active ecosystem.
              It has 15088 star(s) with 609 fork(s). There are 129 watchers for this library.
              There were 2 major release(s) in the last 12 months.
              There are 97 open issues and 675 have been closed. On average issues are closed in 4 days. There are 3 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of loguru is 0.7.2

            kandi-Quality Quality

              loguru has 0 bugs and 0 code smells.

            kandi-Security Security

              loguru has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              loguru code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              loguru is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              loguru releases are available to install and integrate.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              loguru saves you 5058 person hours of effort in developing the same functionality from scratch.
              It has 10670 lines of code, 1250 functions and 148 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed loguru and discovered the below as its top functions. This is intended to give you an instant insight into loguru implemented functionality, and help decide if they suit your requirements.
            • Add a file to the logger
            • Wrap ANSI escape sequences
            • Determine if the given stream should be colored
            • Determines if the stream should be wrapped
            • Configures the router
            • Enable an activation
            • Disable an activation
            • Change activation status
            • Write a message
            • Returns a naive aware datetime
            • Add a sink to the logger
            • Format a record
            • Extract frames from traceback
            • Format relevant values
            • Parse a file
            • Yield occurrences of regex matching regex
            • Write messages to the queue
            • Initialize the module
            • Log message at level level
            • Terminate the stream
            • Loads the getframe function
            • Compress file with given extension
            • Load the contextvar
            • Return an environment variable
            • Returns a time aware datetime
            • Completes all logging handlers
            • Loads the cime functions
            • Loads the loop functions
            Get all kandi verified functions for this library.

            loguru Key Features

            No Key Features are available at this moment for loguru.

            loguru Examples and Code Snippets

            default
            pypidot img1Lines of Code : 493dot img1no licencesLicense : No License
            copy iconCopy
            6 日志优先默认配置
            Pythondot img2Lines of Code : 102dot img2no licencesLicense : No License
            copy iconCopy
            如果反对日志有各种彩色,可以设置 DEFAULUT_USE_COLOR_HANDLER = False
            如果反对日志有块状背景彩色,可以设置 DISPLAY_BACKGROUD_COLOR_IN_CONSOLE = False
            如果想屏蔽nb_log包对怎么设置pycahrm的颜色的提示,可以设置 WARNING_PYCHARM_COLOR_SETINGS = False
            如果想改变日志模板,可以设置 FORMATTER_KIND 参数,只带了7种模板,可以自定义添加喜欢的模板
            
            """
            此文件  
            屏幕流日志效果图,设置不使用背景色块。
            Pythondot img3Lines of Code : 70dot img3no licencesLicense : No License
            copy iconCopy
            very sharp color display,monkey patch bulitin print  
            and high-performance multiprocess safe roating file handler,
            other handlers includeing dintalk ,email,kafka,elastic and so on 
            
            0) 自动转换print效果,再也不怕有人在项目中随意print,导致很难找到是从哪里冒出来的print。
            只要import nb_lo  
            Logging UUID per API request in Python FastAPI
            Pythondot img4Lines of Code : 23dot img4License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            from loguru import logger
            from contextvars import ContextVar
            from starlette.middleware.base import BaseHTTPMiddleware
            
            _request_id = ContextVar("request_id", default=None)
            
            
            def get_request_id():
                return _request_id.get()
            
            class Context
            Python - loguru disable traceback on exceptions
            Pythondot img5Lines of Code : 4dot img5License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            import sys
            
            sys.tracebacklimit = 0
            
            Is it safe to define a context manager around a nested function?
            Pythondot img6Lines of Code : 7dot img6License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            def consumer_provider():
                http_client = HttpClient()
                def consumer(data):
                    with http_client:
                        http_client.post(data)
                return consumer
            
            How to use Loguru defaults + and extra information?
            Pythondot img7Lines of Code : 10dot img7License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            logger_format = (
                "{time:YYYY-MM-DD HH:mm:ss.SSS} | "
                "{level: <8} | "
                "{name}:{function}:{line} | "
                "{extra[ip]} {extra[user]} - {message}"
            )
            logger.configure(extra={"ip": "", "user": ""})  # Default values
            logger.remov
            Use Loguru logging library to log requests made in an imported file
            Pythondot img8Lines of Code : 79dot img8License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            # main.py
            
            import logging as classic_logging
            import os
            
            from blurev import BluerevApiRequestHandler
            from loguru import logger as loguru_logger
            
            
            @loguru_logger.catch
            def main():
                logging_file = r"plan_review_distributor.log"
                loguru_
            copy iconCopy
            import sys
            
            from loguru import logger
            
            
            def only_level(level):
                def is_level(record):
                    return record['level'].name == level
            
                return is_level
            
            
            logger.remove()
            logger.add(sys.stdout, level='TRACE', filter=only_level('TRACE'))
            
            How should I access Cheetah Template() variable placeholders in an object instance?
            Pythondot img10Lines of Code : 32dot img10License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            myinfo = Info(keyword_integer=10, keyword_string="snack-attack")
            t = Template("On the first $keyword_string, my true love",
                searchList=[myinfo])
            
            #filename: py_text_template.py
            
            from traits.api import String, Ra

            Community Discussions

            QUESTION

            Logging UUID per API request in Python FastAPI
            Asked 2022-Mar-20 at 13:06

            I have a pure python package(let's call it main) that has a few functions for managing infrastructure. Alongside, I have created a FastAPI service that can make calls to the main module to invoke functionality as per need.

            For logging, I'm using loguru. The API on startup creates a loguru instance, settings are applied and a generic UUID is set (namely, [main]). On every incoming request to the API, a pre_request function generates a new UUID and calls the loguru to configure with that UUID. At the end of the request, the UUID is set back to default UUID [main].

            The problem that I'm facing is on concurrent requests, the new UUID takes over and all the logs are now being written with the UUID that was configured latest. Is there a way I can instantiate the loguru module on every request and make sure there's no cross logging happening for parallelly processed API requests?

            Implementation:

            In init.py of the main package:

            ...

            ANSWER

            Answered 2022-Mar-20 at 13:06

            I created this middleware, which before routing calls, configures the logger instance with the UUID with the user of context manager:

            Source https://stackoverflow.com/questions/71523294

            QUESTION

            Python - loguru disable traceback on exceptions
            Asked 2022-Feb-28 at 11:15

            I'm not able to disable the traceback on exceptions even after setting LOGURU_BACKTRACE environment variable as False. I've also tried logger.configure() method like this.

            ...

            ANSWER

            Answered 2022-Feb-28 at 11:15

            The backtrace attribute controls the length of the traceback (if enabled, Loguru displays the entire traceback instead of stopping at the try/except frame like the standard exception does).

            However, Loguru respects the sys.tracebacklimit value. You can disable traceback by settings it to 0:

            Source https://stackoverflow.com/questions/71262971

            QUESTION

            Is it safe to define a context manager around a nested function?
            Asked 2022-Feb-26 at 21:08

            For a third party library* I have to provide a function which consumes some data. My implementation of the consumption requires the data to be posted to an API. So I came up with this structure below:

            ...

            ANSWER

            Answered 2022-Feb-26 at 21:07

            It depends on the context manager. In the code you wrote, the HTTPClient you created stays alive because the function it returns maintains a reference to it, even though the variable http_client defined in consumer_provider goes out of scope.

            However, HTTPClient.__exit__ is still called before consumer_provider returns, so the consumer function may not work as intended.

            You may want to do something like

            Source https://stackoverflow.com/questions/71280153

            QUESTION

            Loguru - how to clear the logs
            Asked 2022-Feb-20 at 11:21

            is there a way clear the log file before using it with the python log library 'loguru'?

            Thanks!

            ...

            ANSWER

            Answered 2022-Feb-20 at 11:21

            Loguru API does not have the ability to remove/clean up log files. Instead of that, you could either use open('output.log', 'w').close() if you want to erase all contents of the log file. Or check the ability to use log rotation in Loguru if it's suitable for your use case (something like that logger.add("file_{time}.log"))

            Source https://stackoverflow.com/questions/71193639

            QUESTION

            How to use Loguru defaults + and extra information?
            Asked 2022-Feb-06 at 14:13

            I'm still reaseaching about Loguru, but I can't find an easy way to do this. I want to use the default options from Loguru, I believe they are great, but I want to add information to it, I want to add the IP of a request that will be logged.

            If I try this:

            ...

            ANSWER

            Answered 2022-Feb-06 at 14:13

            I make the same question in the Github Repository and this was the answered by Delgan (Loguru maintainer):

            I think you simply need to add() your handler using a custom format containing the extra information. Here is an example:

            Source https://stackoverflow.com/questions/70977165

            QUESTION

            Use Loguru logging library to log requests made in an imported file
            Asked 2022-Jan-07 at 10:59

            So I have program written in a python file (main.py) that uses classes in an api wrapper file (bluerev.py). I want to use the loguru logger in main.py to collect all exceptions from the program + all requests made in the api wrapper. So the logging set up in the bluerev.py api wrapper looks like this:

            ...

            ANSWER

            Answered 2022-Jan-07 at 10:59

            The problem is that loguru uses a completely different mechanism for logging than the classic logging library. The classic logging library constructs a hierarchy of loggers, and log records are propagate up to the root (see the Advanced logging tutorial from the Python docs for reference). But loguru does not use at all this hierarchy, it operates in a totally disjointed way from it.
            So if you want the logs emitted using the classic logging library to be ultimately handled by loguru, you have to intercept them.

            Here is a Minimal Reproducible Example of my solution :

            Source https://stackoverflow.com/questions/70600485

            QUESTION

            How should I access Cheetah Template() variable placeholders in an object instance?
            Asked 2021-Dec-18 at 10:36

            I'm trying to set up an object instance that will provide values to the Cheetah3 text templating engine.

            This is my text template script...

            ...

            ANSWER

            Answered 2021-Dec-18 at 10:36

            For reasons I don't yet understand, Cheetah does not follow normal conventions to access object instance attributes and methods.

            To fix the problem, I had to replace the $myinfo.keyword_string call with $keyword_string. Then I added searchList=[myinfo] to the Template() call...

            Source https://stackoverflow.com/questions/70381084

            QUESTION

            How to use ApScheduler correctly in FastAPI?
            Asked 2021-Nov-25 at 09:31
            from fastapi import FastAPI
            from fastapi.middleware.cors import CORSMiddleware
            import uvicorn
            import time
            from loguru import logger
            from apscheduler.schedulers.background import BackgroundScheduler
            
            app = FastAPI()
            app.add_middleware(
                CORSMiddleware,
                allow_origins=["*"],
                allow_credentials=True,
                allow_methods=["*"],
                allow_headers=["*"],
            )
            
            test_list = ["1"]*10
            
            def check_list_len():
                global test_list
                while True:
                    time.sleep(5)
                    logger.info(f"check_list_len:{len(test_list)}")
            
            @app.on_event('startup')
            def init_data():
                scheduler = BackgroundScheduler()
                scheduler.add_job(check_list_len, 'cron', second='*/5')
                scheduler.start()
            
            @app.get("/pop")
            async def list_pop():
                global test_list
                test_list.pop(1)
                logger.info(f"current_list_len:{len(test_list)}")
            
            
            if __name__ == '__main__':
                uvicorn.run(app="main3:app", host="0.0.0.0", port=80, reload=False, debug=False)
            
            ...

            ANSWER

            Answered 2021-Nov-25 at 09:31

            You're getting the behavior you're asking for. You've configured apscheduler to run check_list_len every five seconds, but you've also made it so that function runs without terminating - just sleeping for five seconds in an endless loop. That function never terminates, so apscheduler doesn't run it again - since it still hasn't finished.

            Remove the infinite loop inside your utility function when using apscheduler - it'll call the function every five seconds for you:

            Source https://stackoverflow.com/questions/70104983

            QUESTION

            Loguru: how to obfuscate data in logs
            Asked 2021-Nov-17 at 17:01

            Using the python logger I can obfuscate data like this:

            ...

            ANSWER

            Answered 2021-Nov-17 at 17:01

            QUESTION

            Create subquery using peewee, using `.select` on the subquery results
            Asked 2021-Nov-13 at 23:13

            I have a rather complex peewee query that looks like that:

            ...

            ANSWER

            Answered 2021-Nov-13 at 23:13

            Eventually found the Select function in the documentation, which allows me to kind of wrap the previous query:

            Source https://stackoverflow.com/questions/69957862

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install loguru

            You can install using 'pip install loguru' or download it from GitHub, PyPI.
            You can use loguru like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • PyPI

            pip install loguru

          • CLONE
          • HTTPS

            https://github.com/Delgan/loguru.git

          • CLI

            gh repo clone Delgan/loguru

          • sshUrl

            git@github.com:Delgan/loguru.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link