logly 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {logly-0.2.1 → logly-0.2.2}/.github/workflows/pypi_publish.yml +13 -13
- {logly-0.2.1 → logly-0.2.2}/.github/workflows/testing.yml +16 -16
- {logly-0.2.1 → logly-0.2.2}/Cargo.lock +44 -44
- {logly-0.2.1 → logly-0.2.2}/Cargo.toml +2 -2
- {logly-0.2.1 → logly-0.2.2}/PKG-INFO +73 -4
- {logly-0.2.1 → logly-0.2.2}/README.md +72 -3
- {logly-0.2.1 → logly-0.2.2}/crates/color/src/lib.rs +548 -178
- {logly-0.2.1 → logly-0.2.2}/crates/config/src/lib.rs +1 -54
- {logly-0.2.1 → logly-0.2.2}/crates/format/src/lib.rs +44 -11
- {logly-0.2.1 → logly-0.2.2}/crates/levels/src/lib.rs +10 -10
- {logly-0.2.1 → logly-0.2.2}/crates/network/src/lib.rs +231 -0
- {logly-0.2.1 → logly-0.2.2}/docs/.vitepress/config.ts +29 -9
- {logly-0.2.1 → logly-0.2.2}/docs/api-reference/exceptions.md +2 -0
- logly-0.2.2/docs/api-reference/index.md +21 -0
- {logly-0.2.1 → logly-0.2.2}/docs/api-reference/integrations.md +149 -102
- {logly-0.2.1 → logly-0.2.2}/docs/api-reference/logger.md +27 -4
- {logly-0.2.1 → logly-0.2.2}/docs/examples/concurrency.md +4 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/context-binding.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/django-integration.md +1 -1
- {logly-0.2.1 → logly-0.2.2}/docs/examples/enable-disable.md +1 -1
- {logly-0.2.1 → logly-0.2.2}/docs/examples/exception-handling.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/fastapi-integration.md +1 -1
- {logly-0.2.1 → logly-0.2.2}/docs/examples/file-logging.md +3 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/filtering.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/formatting.md +2 -0
- logly-0.2.2/docs/examples/integration-catalog.md +88 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/integrations.md +1 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/json-logging.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/lazy-evaluation.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/patching.md +6 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/production-config.md +1 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/rich-integration.md +1 -1
- {logly-0.2.1 → logly-0.2.2}/docs/examples/stdlib-integration.md +1 -1
- {logly-0.2.1 → logly-0.2.2}/docs/getting-started.md +1 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/async-sinks.md +158 -8
- {logly-0.2.1 → logly-0.2.2}/docs/guides/callbacks.md +67 -11
- {logly-0.2.1 → logly-0.2.2}/docs/guides/celery.md +1 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/color-markup.md +75 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/color-operations.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/concurrency.md +7 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/configure.md +4 -3
- {logly-0.2.1 → logly-0.2.2}/docs/guides/console-output.md +3 -2
- {logly-0.2.1 → logly-0.2.2}/docs/guides/context-binding.md +15 -2
- {logly-0.2.1 → logly-0.2.2}/docs/guides/custom-levels.md +6 -6
- {logly-0.2.1 → logly-0.2.2}/docs/guides/django.md +1 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/environment-variables.md +4 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/exception-callbacks.md +61 -9
- {logly-0.2.1 → logly-0.2.2}/docs/guides/exception-handling.md +12 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/faq.md +6 -8
- {logly-0.2.1 → logly-0.2.2}/docs/guides/fastapi.md +5 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/file-directories.md +16 -16
- {logly-0.2.1 → logly-0.2.2}/docs/guides/file-logging.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/filter-features.md +46 -26
- {logly-0.2.1 → logly-0.2.2}/docs/guides/filtering.md +12 -1
- {logly-0.2.1 → logly-0.2.2}/docs/guides/flask.md +3 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/formatting.md +45 -2
- {logly-0.2.1 → logly-0.2.2}/docs/guides/gunicorn.md +4 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/independent-loggers.md +6 -2
- {logly-0.2.1 → logly-0.2.2}/docs/guides/logging-handlers.md +12 -4
- {logly-0.2.1 → logly-0.2.2}/docs/guides/network-config.md +58 -17
- {logly-0.2.1 → logly-0.2.2}/docs/guides/network-logging.md +32 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/parse.md +6 -6
- {logly-0.2.1 → logly-0.2.2}/docs/guides/queue-async.md +16 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/rich-console.md +1 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/scheduler.md +14 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/sinks.md +8 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/source-location-timestamps.md +4 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/source-location.md +24 -6
- {logly-0.2.1 → logly-0.2.2}/docs/guides/stdlib-logging.md +1 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/telemetry.md +8 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/troubleshooting.md +2 -2
- {logly-0.2.1 → logly-0.2.2}/docs/guides/uvicorn.md +1 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/apscheduler.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/aws_cloudwatch.md +6 -4
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/azure_monitor.md +1 -3
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/celery.md +3 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/click.md +3 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/fastapi.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/flask.md +3 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/gunicorn.md +1 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/sqlalchemy.md +3 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/starlette.md +9 -4
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/telemetry.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/typer.md +3 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/uvicorn.md +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/__init__.py +4 -0
- {logly-0.2.1 → logly-0.2.2}/logly/_logly.pyi +79 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/apscheduler.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/aws_cloudwatch.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/azure_monitor.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/celery.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/click.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/datadog.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/discord.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/django.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/elasticsearch.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/email.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/fastapi.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/flask.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/google_cloud_logging.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/graylog.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/gunicorn.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/http.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/kafka.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/logstash.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/loki.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/mongodb.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/newrelic.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/opentelemetry.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/postgresql.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/prometheus.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/propagate.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/pydantic.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/rabbitmq.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/redis.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/rich.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/rq.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/sentry.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/seq.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/slack.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/sqlalchemy.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/starlette.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/stdlib.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/structlog.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/telemetry.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/tqdm.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/typer.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/uvicorn.py +2 -0
- {logly-0.2.1 → logly-0.2.2}/logly/logger.py +54 -3
- {logly-0.2.1 → logly-0.2.2}/src/lib.rs +91 -0
- logly-0.2.2/tests/test_async_sinks.py +213 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_custom_levels.py +2 -2
- {logly-0.2.1 → logly-0.2.2}/tests/test_logly.py +3 -1
- logly-0.2.1/.github/release_drafter_template.yml +0 -121
- logly-0.2.1/.github/workflows/release_drafter.yml +0 -28
- logly-0.2.1/docs/examples/integration-catalog.md +0 -88
- logly-0.2.1/tests/test_async_sinks.py +0 -82
- {logly-0.2.1 → logly-0.2.2}/.github/FUNDING.yml +0 -0
- {logly-0.2.1 → logly-0.2.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {logly-0.2.1 → logly-0.2.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {logly-0.2.1 → logly-0.2.2}/.github/ISSUE_TEMPLATE/docs_issue.yml +0 -0
- {logly-0.2.1 → logly-0.2.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {logly-0.2.1 → logly-0.2.2}/.github/ISSUE_TEMPLATE/help_wanted.yml +0 -0
- {logly-0.2.1 → logly-0.2.2}/.github/dependabot.yml +0 -0
- {logly-0.2.1 → logly-0.2.2}/.github/pull_request_template.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/.github/workflows/docs_publish.yml +0 -0
- {logly-0.2.1 → logly-0.2.2}/.gitignore +0 -0
- {logly-0.2.1 → logly-0.2.2}/.pre-commit-config.yaml +0 -0
- {logly-0.2.1 → logly-0.2.2}/CODE_OF_CONDUCT.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/CONTRIBUTING.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/LICENSE +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/color/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/compress/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/compress/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/concurrency/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/concurrency/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/config/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/context/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/context/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/core/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/core/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/error/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/error/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/filter/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/filter/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/format/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/levels/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/network/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/record/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/record/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/rotate/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/rotate/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/sink/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/sink/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/source/Cargo.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/crates/source/src/lib.rs +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/.gitignore +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/.vitepress/theme/custom.css +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/.vitepress/theme/index.ts +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/CNAME +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/api-reference/models.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/comparison.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/css/custom.css +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/basic-logging.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/color-markup.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/compression.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/custom-levels.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/multiple-sinks.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/examples/rotation.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/compression-options.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/custom-colors.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/propagate.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/rotation-retention-compression.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/structlog.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/guides/switching-from-other-libraries.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/index.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/datadog.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/discord.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/django.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/elasticsearch.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/email.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/google_cloud_logging.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/graylog.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/http.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/index.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/kafka.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/logstash.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/loki.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/mongodb.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/newrelic.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/opentelemetry.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/postgresql.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/prometheus.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/propagate.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/pydantic.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/rabbitmq.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/redis.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/rich.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/rq.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/sentry.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/seq.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/slack.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/stdlib.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/structlog.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/integrations/tqdm.md +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/package.json +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/android-chrome-192x192.png +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/android-chrome-512x512.png +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/apple-touch-icon.png +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/cover.png +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/favicon-16x16.png +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/favicon-32x32.png +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/favicon.ico +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/logo.ico +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/logo.png +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/robots.txt +0 -0
- {logly-0.2.1 → logly-0.2.2}/docs/public/site.webmanifest +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/apscheduler_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/aws_cloudwatch_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/azure_monitor_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/basic_logging.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/celery_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/click_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/color_markup.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/compression_example.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/concurrency.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/context_binding.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/custom_levels.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/datadog_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/discord_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/django_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/elasticsearch_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/email_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/enable_disable.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/exception_handling.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/fastapi_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/file_logging.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/filtering.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/flask_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/formatting.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/google_cloud_logging_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/graylog_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/gunicorn_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/http_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/json_logging.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/kafka_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/lazy_evaluation.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/logstash_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/loki_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/mongodb_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/multiple_sinks.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/newrelic_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/opentelemetry_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/patching.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/postgresql_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/production_config.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/prometheus_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/propagate_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/pydantic_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/rabbitmq_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/redis_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/rich_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/rotation_example.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/rq_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/sentry_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/seq_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/slack_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/sqlalchemy_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/starlette_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/stdlib_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/structlog_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/telemetry_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/tqdm_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/typer_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/examples/uvicorn_integration.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/justfile +0 -0
- {logly-0.2.1 → logly-0.2.2}/logly/exceptions.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/__init__.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/logly/integrations/_utils.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/logly/models.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/logly/py.typed +0 -0
- {logly-0.2.1 → logly-0.2.2}/logly/typing.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/pyproject.toml +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/__init__.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_callable_format_filter.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_catch_exceptions.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_catch_exclude.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_color_functions.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_color_output.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_comprehensive.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_compression.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_concurrency_enqueue.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_configure.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_context_bind.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_copy.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_edge_cases.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_enable_disable.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_env_autoinit.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_exception_hierarchy.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_exception_method.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_exception_methods.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_filters.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_format_tokens.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_formatters.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_independent_loggers.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_apscheduler.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_aws_cloudwatch.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_azure_monitor.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_celery.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_click.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_datadog.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_discord.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_django.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_elasticsearch.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_email.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_fastapi.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_flask.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_google_cloud_logging.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_graylog.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_gunicorn.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_http.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_kafka.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_logstash.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_loki.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_mongodb.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_newrelic.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_opentelemetry.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_postgresql.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_prometheus.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_propagate.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_pydantic.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_rabbitmq.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_redis.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_rich.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_rq.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_sentry.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_seq.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_slack.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_sqlalchemy.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_starlette.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_stdlib.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_structlog.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_tqdm.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_typer.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_utils.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integration_uvicorn.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_integrations.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_levels.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_logging_handler.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_models.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_opt.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_opt_depth_capture.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_opt_parameters.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_opt_record.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_parse.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_parse_static.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_patch.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_pydantic_config.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_python_sinks.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_raw_mode.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_reinstall.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_retention.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_root_dir.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_rotation.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_rotation_retention.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_serialize.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_sink_params.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_sinks_console.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_sinks_file.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_start_stop.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_telemetry.py +0 -0
- {logly-0.2.1 → logly-0.2.2}/tests/test_warn_alias.py +0 -0
|
@@ -27,7 +27,7 @@ jobs:
|
|
|
27
27
|
flat: "cp313-cp313"
|
|
28
28
|
- version: "3.14"
|
|
29
29
|
flat: "cp314-cp314"
|
|
30
|
-
- version: "3.15.0-
|
|
30
|
+
- version: "3.15.0-rc.1"
|
|
31
31
|
flat: "cp315-cp315"
|
|
32
32
|
steps:
|
|
33
33
|
- uses: actions/checkout@v7
|
|
@@ -65,7 +65,7 @@ jobs:
|
|
|
65
65
|
flat: "cp313-cp313"
|
|
66
66
|
- version: "3.14"
|
|
67
67
|
flat: "cp314-cp314"
|
|
68
|
-
- version: "3.15.0-
|
|
68
|
+
- version: "3.15.0-rc.1"
|
|
69
69
|
flat: "cp315-cp315"
|
|
70
70
|
steps:
|
|
71
71
|
- uses: actions/checkout@v7
|
|
@@ -104,7 +104,7 @@ jobs:
|
|
|
104
104
|
flat: "cp313-cp313"
|
|
105
105
|
- version: "3.14"
|
|
106
106
|
flat: "cp314-cp314"
|
|
107
|
-
- version: "3.15.0-
|
|
107
|
+
- version: "3.15.0-rc.1"
|
|
108
108
|
flat: "cp315-cp315"
|
|
109
109
|
steps:
|
|
110
110
|
- uses: actions/checkout@v7
|
|
@@ -133,10 +133,10 @@ jobs:
|
|
|
133
133
|
matrix:
|
|
134
134
|
target: [x64, x86]
|
|
135
135
|
python-version:
|
|
136
|
-
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-
|
|
136
|
+
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-rc.1"]
|
|
137
137
|
steps:
|
|
138
138
|
- uses: actions/checkout@v7
|
|
139
|
-
- uses: actions/setup-python@
|
|
139
|
+
- uses: actions/setup-python@v7
|
|
140
140
|
with:
|
|
141
141
|
python-version: ${{ matrix.python-version }}
|
|
142
142
|
architecture: ${{ matrix.target }}
|
|
@@ -165,10 +165,10 @@ jobs:
|
|
|
165
165
|
strategy:
|
|
166
166
|
matrix:
|
|
167
167
|
python-version:
|
|
168
|
-
["3.11", "3.12", "3.13", "3.14", "3.15.0-
|
|
168
|
+
["3.11", "3.12", "3.13", "3.14", "3.15.0-rc.1"]
|
|
169
169
|
steps:
|
|
170
170
|
- uses: actions/checkout@v7
|
|
171
|
-
- uses: actions/setup-python@
|
|
171
|
+
- uses: actions/setup-python@v7
|
|
172
172
|
with:
|
|
173
173
|
python-version: ${{ matrix.python-version }}
|
|
174
174
|
architecture: arm64
|
|
@@ -197,10 +197,10 @@ jobs:
|
|
|
197
197
|
strategy:
|
|
198
198
|
matrix:
|
|
199
199
|
python-version:
|
|
200
|
-
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-
|
|
200
|
+
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-rc.1"]
|
|
201
201
|
steps:
|
|
202
202
|
- uses: actions/checkout@v7
|
|
203
|
-
- uses: actions/setup-python@
|
|
203
|
+
- uses: actions/setup-python@v7
|
|
204
204
|
with:
|
|
205
205
|
python-version: ${{ matrix.python-version }}
|
|
206
206
|
- name: Set version from tag
|
|
@@ -225,7 +225,7 @@ jobs:
|
|
|
225
225
|
timeout-minutes: 10
|
|
226
226
|
steps:
|
|
227
227
|
- uses: actions/checkout@v7
|
|
228
|
-
- uses: actions/setup-python@
|
|
228
|
+
- uses: actions/setup-python@v7
|
|
229
229
|
with:
|
|
230
230
|
python-version: "3.13"
|
|
231
231
|
- name: Set version from tag
|
|
@@ -253,7 +253,7 @@ jobs:
|
|
|
253
253
|
name: pypi
|
|
254
254
|
url: https://pypi.org/project/logly/
|
|
255
255
|
steps:
|
|
256
|
-
- uses: actions/download-artifact@
|
|
256
|
+
- uses: actions/download-artifact@v8
|
|
257
257
|
with:
|
|
258
258
|
pattern: wheels-*
|
|
259
259
|
merge-multiple: true
|
|
@@ -261,7 +261,7 @@ jobs:
|
|
|
261
261
|
- name: List artifacts
|
|
262
262
|
run: ls -la dist/
|
|
263
263
|
- name: Install uv
|
|
264
|
-
uses: astral-sh/setup-uv@
|
|
264
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
265
265
|
- name: Publish to PyPI
|
|
266
266
|
run: uv publish --trusted-publishing always dist/*
|
|
267
267
|
|
|
@@ -271,7 +271,7 @@ jobs:
|
|
|
271
271
|
runs-on: ubuntu-latest
|
|
272
272
|
timeout-minutes: 10
|
|
273
273
|
steps:
|
|
274
|
-
- uses: actions/download-artifact@
|
|
274
|
+
- uses: actions/download-artifact@v8
|
|
275
275
|
with:
|
|
276
276
|
pattern: wheels-*
|
|
277
277
|
merge-multiple: true
|
|
@@ -65,13 +65,13 @@ jobs:
|
|
|
65
65
|
steps:
|
|
66
66
|
- uses: actions/checkout@v7
|
|
67
67
|
- name: Install uv
|
|
68
|
-
uses: astral-sh/setup-uv@
|
|
68
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
69
69
|
with:
|
|
70
70
|
enable-cache: true
|
|
71
71
|
cache-dependency-glob: pyproject.toml
|
|
72
72
|
cache-suffix: lint
|
|
73
73
|
- name: Set up Python
|
|
74
|
-
uses: actions/setup-python@
|
|
74
|
+
uses: actions/setup-python@v7
|
|
75
75
|
with:
|
|
76
76
|
python-version: "3.13"
|
|
77
77
|
- name: Cache Rust build
|
|
@@ -96,19 +96,19 @@ jobs:
|
|
|
96
96
|
matrix:
|
|
97
97
|
os: [ubuntu-latest, windows-latest, macos-26]
|
|
98
98
|
python-version:
|
|
99
|
-
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-
|
|
99
|
+
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-rc.1"]
|
|
100
100
|
runs-on: ${{ matrix.os }}
|
|
101
101
|
timeout-minutes: 30
|
|
102
102
|
steps:
|
|
103
103
|
- uses: actions/checkout@v7
|
|
104
104
|
- name: Install uv
|
|
105
|
-
uses: astral-sh/setup-uv@
|
|
105
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
106
106
|
with:
|
|
107
107
|
enable-cache: true
|
|
108
108
|
cache-dependency-glob: pyproject.toml
|
|
109
109
|
cache-suffix: test-${{ matrix.os }}-${{ matrix.python-version }}
|
|
110
110
|
- name: Set up Python ${{ matrix.python-version }}
|
|
111
|
-
uses: actions/setup-python@
|
|
111
|
+
uses: actions/setup-python@v7
|
|
112
112
|
with:
|
|
113
113
|
python-version: ${{ matrix.python-version }}
|
|
114
114
|
- name: Cache Rust build
|
|
@@ -135,18 +135,18 @@ jobs:
|
|
|
135
135
|
fail-fast: false
|
|
136
136
|
matrix:
|
|
137
137
|
python-version:
|
|
138
|
-
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-
|
|
138
|
+
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-rc.1"]
|
|
139
139
|
timeout-minutes: 30
|
|
140
140
|
steps:
|
|
141
141
|
- uses: actions/checkout@v7
|
|
142
142
|
- name: Install uv
|
|
143
|
-
uses: astral-sh/setup-uv@
|
|
143
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
144
144
|
with:
|
|
145
145
|
enable-cache: true
|
|
146
146
|
cache-dependency-glob: pyproject.toml
|
|
147
147
|
cache-suffix: test-windows-x86-${{ matrix.python-version }}
|
|
148
148
|
- name: Set up Python ${{ matrix.python-version }}
|
|
149
|
-
uses: actions/setup-python@
|
|
149
|
+
uses: actions/setup-python@v7
|
|
150
150
|
with:
|
|
151
151
|
python-version: ${{ matrix.python-version }}
|
|
152
152
|
architecture: x86
|
|
@@ -171,18 +171,18 @@ jobs:
|
|
|
171
171
|
fail-fast: false
|
|
172
172
|
matrix:
|
|
173
173
|
python-version:
|
|
174
|
-
["3.11", "3.12", "3.13", "3.14", "3.15.0-
|
|
174
|
+
["3.11", "3.12", "3.13", "3.14", "3.15.0-rc.1"]
|
|
175
175
|
timeout-minutes: 30
|
|
176
176
|
steps:
|
|
177
177
|
- uses: actions/checkout@v7
|
|
178
178
|
- name: Install uv
|
|
179
|
-
uses: astral-sh/setup-uv@
|
|
179
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
180
180
|
with:
|
|
181
181
|
enable-cache: true
|
|
182
182
|
cache-dependency-glob: pyproject.toml
|
|
183
183
|
cache-suffix: test-windows-arm64-${{ matrix.python-version }}
|
|
184
184
|
- name: Set up Python ${{ matrix.python-version }}
|
|
185
|
-
uses: actions/setup-python@
|
|
185
|
+
uses: actions/setup-python@v7
|
|
186
186
|
with:
|
|
187
187
|
python-version: ${{ matrix.python-version }}
|
|
188
188
|
architecture: arm64
|
|
@@ -207,11 +207,11 @@ jobs:
|
|
|
207
207
|
fail-fast: false
|
|
208
208
|
matrix:
|
|
209
209
|
python-version:
|
|
210
|
-
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-
|
|
210
|
+
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-rc.1"]
|
|
211
211
|
timeout-minutes: 30
|
|
212
212
|
steps:
|
|
213
213
|
- uses: actions/checkout@v7
|
|
214
|
-
- uses: actions/setup-python@
|
|
214
|
+
- uses: actions/setup-python@v7
|
|
215
215
|
with:
|
|
216
216
|
python-version: ${{ matrix.python-version }}
|
|
217
217
|
- name: Build wheel
|
|
@@ -231,18 +231,18 @@ jobs:
|
|
|
231
231
|
fail-fast: false
|
|
232
232
|
matrix:
|
|
233
233
|
python-version:
|
|
234
|
-
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-
|
|
234
|
+
["3.10", "3.11", "3.12", "3.13", "3.14", "3.15.0-rc.1"]
|
|
235
235
|
timeout-minutes: 30
|
|
236
236
|
steps:
|
|
237
237
|
- uses: actions/checkout@v7
|
|
238
238
|
- name: Install uv
|
|
239
|
-
uses: astral-sh/setup-uv@
|
|
239
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
240
240
|
with:
|
|
241
241
|
enable-cache: true
|
|
242
242
|
cache-dependency-glob: pyproject.toml
|
|
243
243
|
cache-suffix: test-linux-aarch64-${{ matrix.python-version }}
|
|
244
244
|
- name: Set up Python ${{ matrix.python-version }}
|
|
245
|
-
uses: actions/setup-python@
|
|
245
|
+
uses: actions/setup-python@v7
|
|
246
246
|
with:
|
|
247
247
|
python-version: ${{ matrix.python-version }}
|
|
248
248
|
- name: Cache Rust build
|
|
@@ -10,9 +10,9 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
|
|
|
10
10
|
|
|
11
11
|
[[package]]
|
|
12
12
|
name = "android_system_properties"
|
|
13
|
-
version = "0.1.
|
|
13
|
+
version = "0.1.6"
|
|
14
14
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
15
|
-
checksum = "
|
|
15
|
+
checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc"
|
|
16
16
|
dependencies = [
|
|
17
17
|
"libc",
|
|
18
18
|
]
|
|
@@ -52,9 +52,9 @@ dependencies = [
|
|
|
52
52
|
|
|
53
53
|
[[package]]
|
|
54
54
|
name = "cc"
|
|
55
|
-
version = "1.
|
|
55
|
+
version = "1.4.0"
|
|
56
56
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
57
|
-
checksum = "
|
|
57
|
+
checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9"
|
|
58
58
|
dependencies = [
|
|
59
59
|
"find-msvc-tools",
|
|
60
60
|
"jobserver",
|
|
@@ -81,14 +81,14 @@ dependencies = [
|
|
|
81
81
|
|
|
82
82
|
[[package]]
|
|
83
83
|
name = "color"
|
|
84
|
-
version = "0.2.
|
|
84
|
+
version = "0.2.2"
|
|
85
85
|
dependencies = [
|
|
86
86
|
"levels",
|
|
87
87
|
]
|
|
88
88
|
|
|
89
89
|
[[package]]
|
|
90
90
|
name = "compress"
|
|
91
|
-
version = "0.2.
|
|
91
|
+
version = "0.2.2"
|
|
92
92
|
dependencies = [
|
|
93
93
|
"bzip2",
|
|
94
94
|
"error",
|
|
@@ -100,14 +100,14 @@ dependencies = [
|
|
|
100
100
|
|
|
101
101
|
[[package]]
|
|
102
102
|
name = "concurrency"
|
|
103
|
-
version = "0.2.
|
|
103
|
+
version = "0.2.2"
|
|
104
104
|
dependencies = [
|
|
105
105
|
"error",
|
|
106
106
|
]
|
|
107
107
|
|
|
108
108
|
[[package]]
|
|
109
109
|
name = "config"
|
|
110
|
-
version = "0.2.
|
|
110
|
+
version = "0.2.2"
|
|
111
111
|
dependencies = [
|
|
112
112
|
"color",
|
|
113
113
|
"error",
|
|
@@ -115,7 +115,7 @@ dependencies = [
|
|
|
115
115
|
|
|
116
116
|
[[package]]
|
|
117
117
|
name = "context"
|
|
118
|
-
version = "0.2.
|
|
118
|
+
version = "0.2.2"
|
|
119
119
|
|
|
120
120
|
[[package]]
|
|
121
121
|
name = "cookie"
|
|
@@ -148,7 +148,7 @@ dependencies = [
|
|
|
148
148
|
|
|
149
149
|
[[package]]
|
|
150
150
|
name = "core"
|
|
151
|
-
version = "0.2.
|
|
151
|
+
version = "0.2.2"
|
|
152
152
|
dependencies = [
|
|
153
153
|
"error",
|
|
154
154
|
"filter",
|
|
@@ -181,13 +181,13 @@ checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
|
|
|
181
181
|
|
|
182
182
|
[[package]]
|
|
183
183
|
name = "displaydoc"
|
|
184
|
-
version = "0.2.
|
|
184
|
+
version = "0.2.7"
|
|
185
185
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
186
|
-
checksum = "
|
|
186
|
+
checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
|
|
187
187
|
dependencies = [
|
|
188
188
|
"proc-macro2",
|
|
189
189
|
"quote",
|
|
190
|
-
"syn
|
|
190
|
+
"syn 3.0.3",
|
|
191
191
|
]
|
|
192
192
|
|
|
193
193
|
[[package]]
|
|
@@ -207,11 +207,11 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
|
207
207
|
|
|
208
208
|
[[package]]
|
|
209
209
|
name = "error"
|
|
210
|
-
version = "0.2.
|
|
210
|
+
version = "0.2.2"
|
|
211
211
|
|
|
212
212
|
[[package]]
|
|
213
213
|
name = "filter"
|
|
214
|
-
version = "0.2.
|
|
214
|
+
version = "0.2.2"
|
|
215
215
|
dependencies = [
|
|
216
216
|
"error",
|
|
217
217
|
"levels",
|
|
@@ -246,7 +246,7 @@ dependencies = [
|
|
|
246
246
|
|
|
247
247
|
[[package]]
|
|
248
248
|
name = "format"
|
|
249
|
-
version = "0.2.
|
|
249
|
+
version = "0.2.2"
|
|
250
250
|
dependencies = [
|
|
251
251
|
"chrono",
|
|
252
252
|
"error",
|
|
@@ -326,9 +326,9 @@ dependencies = [
|
|
|
326
326
|
|
|
327
327
|
[[package]]
|
|
328
328
|
name = "http"
|
|
329
|
-
version = "1.
|
|
329
|
+
version = "1.5.0"
|
|
330
330
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
331
|
-
checksum = "
|
|
331
|
+
checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0"
|
|
332
332
|
dependencies = [
|
|
333
333
|
"bytes",
|
|
334
334
|
"itoa",
|
|
@@ -506,7 +506,7 @@ dependencies = [
|
|
|
506
506
|
|
|
507
507
|
[[package]]
|
|
508
508
|
name = "levels"
|
|
509
|
-
version = "0.2.
|
|
509
|
+
version = "0.2.2"
|
|
510
510
|
dependencies = [
|
|
511
511
|
"error",
|
|
512
512
|
]
|
|
@@ -543,7 +543,7 @@ checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
|
|
|
543
543
|
|
|
544
544
|
[[package]]
|
|
545
545
|
name = "logly"
|
|
546
|
-
version = "0.2.
|
|
546
|
+
version = "0.2.2"
|
|
547
547
|
dependencies = [
|
|
548
548
|
"color",
|
|
549
549
|
"compress",
|
|
@@ -591,7 +591,7 @@ dependencies = [
|
|
|
591
591
|
|
|
592
592
|
[[package]]
|
|
593
593
|
name = "network"
|
|
594
|
-
version = "0.2.
|
|
594
|
+
version = "0.2.2"
|
|
595
595
|
dependencies = [
|
|
596
596
|
"chrono",
|
|
597
597
|
"error",
|
|
@@ -674,9 +674,9 @@ dependencies = [
|
|
|
674
674
|
|
|
675
675
|
[[package]]
|
|
676
676
|
name = "pyo3"
|
|
677
|
-
version = "0.29.
|
|
677
|
+
version = "0.29.2"
|
|
678
678
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
679
|
-
checksum = "
|
|
679
|
+
checksum = "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b"
|
|
680
680
|
dependencies = [
|
|
681
681
|
"libc",
|
|
682
682
|
"once_cell",
|
|
@@ -688,18 +688,18 @@ dependencies = [
|
|
|
688
688
|
|
|
689
689
|
[[package]]
|
|
690
690
|
name = "pyo3-build-config"
|
|
691
|
-
version = "0.29.
|
|
691
|
+
version = "0.29.2"
|
|
692
692
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
693
|
-
checksum = "
|
|
693
|
+
checksum = "f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9"
|
|
694
694
|
dependencies = [
|
|
695
695
|
"target-lexicon",
|
|
696
696
|
]
|
|
697
697
|
|
|
698
698
|
[[package]]
|
|
699
699
|
name = "pyo3-ffi"
|
|
700
|
-
version = "0.29.
|
|
700
|
+
version = "0.29.2"
|
|
701
701
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
702
|
-
checksum = "
|
|
702
|
+
checksum = "e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327"
|
|
703
703
|
dependencies = [
|
|
704
704
|
"libc",
|
|
705
705
|
"pyo3-build-config",
|
|
@@ -707,9 +707,9 @@ dependencies = [
|
|
|
707
707
|
|
|
708
708
|
[[package]]
|
|
709
709
|
name = "pyo3-macros"
|
|
710
|
-
version = "0.29.
|
|
710
|
+
version = "0.29.2"
|
|
711
711
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
712
|
-
checksum = "
|
|
712
|
+
checksum = "73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c"
|
|
713
713
|
dependencies = [
|
|
714
714
|
"proc-macro2",
|
|
715
715
|
"pyo3-macros-backend",
|
|
@@ -719,9 +719,9 @@ dependencies = [
|
|
|
719
719
|
|
|
720
720
|
[[package]]
|
|
721
721
|
name = "pyo3-macros-backend"
|
|
722
|
-
version = "0.29.
|
|
722
|
+
version = "0.29.2"
|
|
723
723
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
724
|
-
checksum = "
|
|
724
|
+
checksum = "571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952"
|
|
725
725
|
dependencies = [
|
|
726
726
|
"heck",
|
|
727
727
|
"proc-macro2",
|
|
@@ -746,7 +746,7 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
|
|
|
746
746
|
|
|
747
747
|
[[package]]
|
|
748
748
|
name = "record"
|
|
749
|
-
version = "0.2.
|
|
749
|
+
version = "0.2.2"
|
|
750
750
|
dependencies = [
|
|
751
751
|
"levels",
|
|
752
752
|
]
|
|
@@ -767,7 +767,7 @@ dependencies = [
|
|
|
767
767
|
|
|
768
768
|
[[package]]
|
|
769
769
|
name = "rotate"
|
|
770
|
-
version = "0.2.
|
|
770
|
+
version = "0.2.2"
|
|
771
771
|
dependencies = [
|
|
772
772
|
"chrono",
|
|
773
773
|
"config",
|
|
@@ -776,9 +776,9 @@ dependencies = [
|
|
|
776
776
|
|
|
777
777
|
[[package]]
|
|
778
778
|
name = "rustls"
|
|
779
|
-
version = "0.23.
|
|
779
|
+
version = "0.23.43"
|
|
780
780
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
781
|
-
checksum = "
|
|
781
|
+
checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06"
|
|
782
782
|
dependencies = [
|
|
783
783
|
"log",
|
|
784
784
|
"once_cell",
|
|
@@ -791,9 +791,9 @@ dependencies = [
|
|
|
791
791
|
|
|
792
792
|
[[package]]
|
|
793
793
|
name = "rustls-pki-types"
|
|
794
|
-
version = "1.15.
|
|
794
|
+
version = "1.15.1"
|
|
795
795
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
796
|
-
checksum = "
|
|
796
|
+
checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96"
|
|
797
797
|
dependencies = [
|
|
798
798
|
"zeroize",
|
|
799
799
|
]
|
|
@@ -817,7 +817,7 @@ checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
|
|
|
817
817
|
|
|
818
818
|
[[package]]
|
|
819
819
|
name = "schedule"
|
|
820
|
-
version = "0.2.
|
|
820
|
+
version = "0.2.2"
|
|
821
821
|
dependencies = [
|
|
822
822
|
"error",
|
|
823
823
|
]
|
|
@@ -879,7 +879,7 @@ checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
|
|
|
879
879
|
|
|
880
880
|
[[package]]
|
|
881
881
|
name = "sink"
|
|
882
|
-
version = "0.2.
|
|
882
|
+
version = "0.2.2"
|
|
883
883
|
dependencies = [
|
|
884
884
|
"color",
|
|
885
885
|
"compress",
|
|
@@ -907,7 +907,7 @@ checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
|
|
|
907
907
|
|
|
908
908
|
[[package]]
|
|
909
909
|
name = "source"
|
|
910
|
-
version = "0.2.
|
|
910
|
+
version = "0.2.2"
|
|
911
911
|
|
|
912
912
|
[[package]]
|
|
913
913
|
name = "stable_deref_trait"
|
|
@@ -962,9 +962,9 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
|
962
962
|
|
|
963
963
|
[[package]]
|
|
964
964
|
name = "time"
|
|
965
|
-
version = "0.3.
|
|
965
|
+
version = "0.3.55"
|
|
966
966
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
967
|
-
checksum = "
|
|
967
|
+
checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134"
|
|
968
968
|
dependencies = [
|
|
969
969
|
"deranged",
|
|
970
970
|
"num-conv",
|
|
@@ -1386,9 +1386,9 @@ dependencies = [
|
|
|
1386
1386
|
|
|
1387
1387
|
[[package]]
|
|
1388
1388
|
name = "zlib-rs"
|
|
1389
|
-
version = "0.6.
|
|
1389
|
+
version = "0.6.7"
|
|
1390
1390
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1391
|
-
checksum = "
|
|
1391
|
+
checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12"
|
|
1392
1392
|
|
|
1393
1393
|
[[package]]
|
|
1394
1394
|
name = "zmij"
|
|
@@ -3,7 +3,7 @@ members = ["crates/color", "crates/compress", "crates/concurrency", "crates/conf
|
|
|
3
3
|
resolver = "2"
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "0.2.
|
|
6
|
+
version = "0.2.2"
|
|
7
7
|
edition = "2024"
|
|
8
8
|
license = "MIT"
|
|
9
9
|
readme = "README.md"
|
|
@@ -30,7 +30,7 @@ sink = { path = "crates/sink" }
|
|
|
30
30
|
source = { path = "crates/source" }
|
|
31
31
|
|
|
32
32
|
# Third-party
|
|
33
|
-
pyo3 = { version = "0.29.
|
|
33
|
+
pyo3 = { version = "0.29.2", features = ["extension-module"] }
|
|
34
34
|
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
|
|
35
35
|
serde = { version = "1", features = ["derive"] }
|
|
36
36
|
serde_json = "1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: logly
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Requires-Dist: pydantic>=2.12.5
|
|
5
5
|
Requires-Dist: typing-extensions>=4.0 ; python_full_version < '3.11'
|
|
6
6
|
Requires-Dist: rich>=14.2.0 ; extra == 'all'
|
|
@@ -189,14 +189,17 @@ A Rust-powered, high-performance logging library for Python with structured sink
|
|
|
189
189
|
| **Multiple sinks** | Console, file, callable, and network outputs simultaneously | [Docs](https://muhammad-fiaz.github.io/logly/guides/sinks/) |
|
|
190
190
|
| **File rotation** | Size-based, time-based, clock-based, and weekday rotation | [Docs](https://muhammad-fiaz.github.io/logly/guides/rotation-retention-compression/) |
|
|
191
191
|
| **Compression** | gzip, zip, bz2, xz, zstd with tar-compatible aliases | [Docs](https://muhammad-fiaz.github.io/logly/guides/rotation-retention-compression/) |
|
|
192
|
-
| **JSON logging** | Structured JSON output
|
|
192
|
+
| **JSON logging** | Structured JSON output with file, line, function, module fields | [Docs](https://muhammad-fiaz.github.io/logly/guides/formatting/) |
|
|
193
193
|
| **Context binding** | Attach persistent key-value pairs to logs | [Docs](https://muhammad-fiaz.github.io/logly/guides/context-binding/) |
|
|
194
194
|
| **Exception catching** | `catch()` decorator and context manager | [Docs](https://muhammad-fiaz.github.io/logly/guides/exception-handling/) |
|
|
195
195
|
| **Background workers** | Non-blocking writes with `enqueue=True` | [Docs](https://muhammad-fiaz.github.io/logly/guides/queue-async/) |
|
|
196
|
+
| **Async sinks** | Async functions, class-based async callables, functools.partial | [Docs](https://muhammad-fiaz.github.io/logly/guides/async-sinks/) |
|
|
197
|
+
| **Rich markup** | Parse `<tag>` and `[tag]` syntax into ANSI escape codes | [Docs](https://muhammad-fiaz.github.io/logly/guides/color-markup/) |
|
|
198
|
+
| **Batch HTTP sink** | Rust-native batched HTTP JSON for high-throughput logging | [Docs](https://muhammad-fiaz.github.io/logly/guides/async-sinks/) |
|
|
199
|
+
| **Network sinks** | HTTP, TCP, UDP, Syslog (RFC 3164/5424) | [Docs](https://muhammad-fiaz.github.io/logly/guides/network-logging/) |
|
|
200
|
+
| **Source location** | Automatic capture of file, line, function, module | [Docs](https://muhammad-fiaz.github.io/logly/guides/source-location/) |
|
|
196
201
|
| **40+ integrations** | FastAPI, Django, Flask, Rich, Redis, Kafka, and more | [Docs](https://muhammad-fiaz.github.io/logly/integrations/) |
|
|
197
202
|
| **Thread-safe** | Safe concurrent logging from multiple threads | [Docs](https://muhammad-fiaz.github.io/logly/guides/concurrency/) |
|
|
198
|
-
| **Source location** | Optional clickable `file:line` output | [Docs](https://muhammad-fiaz.github.io/logly/guides/source-location/) |
|
|
199
|
-
| **Network logging** | HTTP, TCP, UDP, Syslog sinks | [Docs](https://muhammad-fiaz.github.io/logly/guides/network-logging/) |
|
|
200
203
|
| **Color themes** | Custom ANSI color themes per level | [Docs](https://muhammad-fiaz.github.io/logly/guides/custom-colors/) |
|
|
201
204
|
| **Independent loggers** | Separate sink sets per logger instance | [Docs](https://muhammad-fiaz.github.io/logly/guides/independent-loggers/) |
|
|
202
205
|
|
|
@@ -497,6 +500,72 @@ from logly import logger
|
|
|
497
500
|
logger.opt(lazy=True).debug("Result: {}", lambda: expensive_computation())
|
|
498
501
|
```
|
|
499
502
|
|
|
503
|
+
### Async Sinks
|
|
504
|
+
|
|
505
|
+
```python
|
|
506
|
+
import asyncio
|
|
507
|
+
from logly import logger
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
# Async function sink
|
|
511
|
+
async def cloud_sink(message: str) -> None:
|
|
512
|
+
await send_to_cloud(message)
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
# Async class-based sink
|
|
516
|
+
class AsyncDBSink:
|
|
517
|
+
def __init__(self, db_url: str):
|
|
518
|
+
self.db_url = db_url
|
|
519
|
+
|
|
520
|
+
async def __call__(self, message: str) -> None:
|
|
521
|
+
await insert_into_db(self.db_url, message)
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
async def main():
|
|
525
|
+
logger.add(cloud_sink, level="WARNING")
|
|
526
|
+
logger.add(AsyncDBSink("postgresql://localhost/logs"), level="ERROR")
|
|
527
|
+
logger.warning("Sent to cloud")
|
|
528
|
+
logger.error("Sent to both cloud and database")
|
|
529
|
+
logger.complete()
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
asyncio.run(main())
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
### Rich Markup
|
|
536
|
+
|
|
537
|
+
```python
|
|
538
|
+
from logly import logger, parse_rich_markup
|
|
539
|
+
|
|
540
|
+
# Loguru-style angle bracket syntax
|
|
541
|
+
logger.info("<bold>Important</bold> message")
|
|
542
|
+
logger.error("<red>Error:</red> something went wrong")
|
|
543
|
+
logger.info("<bold, cyan>Combined styles</bold, cyan>")
|
|
544
|
+
|
|
545
|
+
# Rich-style bracket syntax
|
|
546
|
+
logger.info("[red]Error[/red] occurred")
|
|
547
|
+
logger.info("[bold green on white]Success[/bold green on white]")
|
|
548
|
+
|
|
549
|
+
# Parse markup manually
|
|
550
|
+
text = parse_rich_markup("<bold>hello</bold>", colorize=True)
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
### Batch HTTP Sink
|
|
554
|
+
|
|
555
|
+
```python
|
|
556
|
+
from logly import BatchHttpJsonSink, logger
|
|
557
|
+
|
|
558
|
+
sink = BatchHttpJsonSink(
|
|
559
|
+
url="https://logs.example.com/ingest",
|
|
560
|
+
batch_size=100,
|
|
561
|
+
flush_interval=5.0,
|
|
562
|
+
headers={"Authorization": "Bearer token"},
|
|
563
|
+
)
|
|
564
|
+
|
|
565
|
+
logger.add(sink, level="INFO")
|
|
566
|
+
logger.info("This will be batched and sent efficiently")
|
|
567
|
+
```
|
|
568
|
+
|
|
500
569
|
For more examples, see the [documentation](https://muhammad-fiaz.github.io/logly/).
|
|
501
570
|
|
|
502
571
|
---
|