Skip to main content

LOGGINGSFACTORY

Installation

pip install loggingsfactory

Usage

Import

from loggingsfactory.logging import Loggers

Initialization

Loguru

  • Method 1
    loggers = Loggers(appname="myapp")
    
  • Method 2
    loggers = Loggers(appname="myapp", debug=True)
    
  • Method 3: not required, but can be done if auto switching of logger type is required for different environments
    loggers = Loggers(
        appname="myapp",
        debug=True,
        host="https://elasticsearch.com:9201",
        index="appindex",
        username="user1"
        pw="userpw"
      )
    

Elasticsearch

loggers = Loggers(
    appname="myapp",
    debug=False,
    host="https://elasticsearch.com:9201",
    index="appindex",
    username="user1"
    pw="userpw"
  )

AsyncElasticsearch

loggers = Loggers(
    appname="myapp",
    debug=False,
    useasync=True,
    host="https://elasticsearch.com:9201",
    index="appindex",
    username="user1"
    pw="userpw"
  )

Log usage

Loguru & Elasticsearch

  • Using default logging data

    • function name will be the function that is calling the log

      def test_log():
          loggers.log("info", "log data")
      
      {
          "log": "log data",
          "version": "1.0",
          "logger_level": "INFO",
          "functional_name": "test_log",
          "app_name": "myapp",
          "timestamp": "2020-01-01T00:00:00.000Z",
      }
      
  • Using custom function name

    def test_log():
        loggers.log("info", "log data", "somefunctionname")
    
    {
        "log": "log data",
        "version": "1.0",
        "logger_level": "INFO",
        "functional_name": "somefunctionname",
        "app_name": "myapp",
        "timestamp": "2020-01-01T00:00:00.000Z",
    }
    
  • Using custom log data format

    custom_log_data = {
      "custom_log": "this is a custom log"
    }
    
    def test_log():
        loggers.log("info", custom_log_data, None, True)
    
    {
        "custom_log": "this is a custom log"
    }
    
  • Using default logging data with custom date format

    date = "2022/04/27"
    
    def test_log():
        loggers.log("info", "log data", None, False, date)
    
    {
        "log": "log data",
        "version": "1.0",
        "logger_level": "INFO",
        "functional_name": "test_log",
        "app_name": "myapp",
        "timestamp": "2022/04/27",
    }
    

Loguru & AsyncElasticsearch

  • Using default logging data

    • function name will be the function that is calling the log

      async def test_log():
          loggers.async_log("info", "log data")
      
      {
          "log": "log data",
          "version": "1.0",
          "logger_level": "INFO",
          "functional_name": "test_log",
          "app_name": "myapp",
          "timestamp": "2020-01-01T00:00:00.000Z",
      }
      
  • Using custom function name

    async def test_log():
        loggers.async_log("info", "log data", "somefunctionname")
    
    {
        "log": "log data",
        "version": "1.0",
        "logger_level": "INFO",
        "functional_name": "somefunctionname",
        "app_name": "myapp",
        "timestamp": "2020-01-01T00:00:00.000Z",
    }
    
  • Using custom log data format

    custom_log_data = {
      "custom_log": "this is a custom log"
    }
    
    async def test_log():
        loggers.async_log("info", custom_log_data, None, True)
    
    {
        "custom_log": "this is a custom log"
    }
    
  • Using default logging data with custom date format

    date = "2022/04/27"
    
    async def test_log():
        loggers.async_log("info", "log data", None, False, date)
    
    {
        "log": "log data",
        "version": "1.0",
        "logger_level": "INFO",
        "functional_name": "test_log",
        "app_name": "myapp",
        "timestamp": "2022/04/27",
    }
    

Query usage

Elasticsearch

  • Using default query payload

    def get_data():
        return loggers.query()
    
  • Using custom query payload

    custom_payload = {
        "query": {
            "bool": {
                "filter": [
                    {
                        "bool": {
                            "should": [{"match_phrase": {"app_name.keyword": "myapp"}}],
                            "minimum_should_match": 1,
                        }
                    },
                    {
                        "range": {
                            "timestamp": {
                                "gte": "2021-09-24T02:58:43.647Z",
                                "lte": "2022-09-24T02:58:43.647Z",
                                "format": "strict_date_optional_time",
                            }
                        }
                    },
                ]
            }
        }
    }
    
    def get_data():
        return loggers.query(custom_payload)
    

AsyncElasticsearch

  • Using default query payload

    async def get_data():
        return await loggers.async_query()
    
  • Using custom query payload

    custom_payload = {
        "query": {
            "bool": {
                "filter": [
                    {
                        "bool": {
                            "should": [{"match_phrase": {"app_name.keyword": "myapp"}}],
                            "minimum_should_match": 1,
                        }
                    },
                    {
                        "range": {
                            "timestamp": {
                                "gte": "2021-09-24T02:58:43.647Z",
                                "lte": "2022-09-24T02:58:43.647Z",
                                "format": "strict_date_optional_time",
                            }
                        }
                    },
                ]
            }
        }
    }
    
    async def get_data():
        return await loggers.async_query(custom_payload)
    

SQL Query usage

Elasticsearch & AsyncElasticsearch

  • Using query payload

    • supports only synchronous
    query_statement = "SELECT * FROM appindex"
    
    def get_data():
        return loggers.sql_query(query_statement)
    

Metadata

Release files for loggingsfactory 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for loggingsfactory 0.0.4
File Size Uploaded
loggingsfactory-0.0.4.tar.gz 10.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for loggingsfactory 0.0.4
File Interpreter ABI Platform
loggingsfactory-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 24.4 kB

Release files / loggingsfactory-0.0.4.tar.gz

Download URL loggingsfactory-0.0.4.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
81f9c815a522e5c93eef54e5ec7f9694e27df15e2228956ae4bf5ebe0332f33f
BLAKE2b-256 checksum
How to use checksums
acec58dff22952119da97e12f803ae58c046718bea65c4fbfd64a5c53e9fbc15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.9

Release files / loggingsfactory-0.0.4-py3-none-any.whl

Download URL loggingsfactory-0.0.4-py3-none-any.whl
Size 14.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7679781ae867c50bd6f7871583c6bd8d83efe595dcbcf2c7ba9538c3d291cc39
BLAKE2b-256 checksum
How to use checksums
550c93f4f361299291588fdafcecd4853eeb1501d73409e0cf6f95ac130c44df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.9

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page