logly 0.2.4__tar.gz → 0.2.5__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.4 → logly-0.2.5}/Cargo.lock +26 -38
- {logly-0.2.4 → logly-0.2.5}/Cargo.toml +2 -5
- {logly-0.2.4 → logly-0.2.5}/PKG-INFO +4 -4
- {logly-0.2.4 → logly-0.2.5}/README.md +3 -3
- logly-0.2.5/benchmarks/micro.py +92 -0
- {logly-0.2.4 → logly-0.2.5}/crates/README.md +1 -6
- {logly-0.2.4 → logly-0.2.5}/crates/color/src/lib.rs +503 -164
- {logly-0.2.4 → logly-0.2.5}/crates/compress/src/lib.rs +199 -53
- {logly-0.2.4 → logly-0.2.5}/crates/record/src/lib.rs +16 -0
- {logly-0.2.4 → logly-0.2.5}/crates/rotate/src/lib.rs +91 -1
- {logly-0.2.4 → logly-0.2.5}/crates/sink/src/lib.rs +148 -9
- {logly-0.2.4 → logly-0.2.5}/docs/api-reference/logger.md +31 -24
- {logly-0.2.4 → logly-0.2.5}/docs/examples/color-markup.md +2 -1
- {logly-0.2.4 → logly-0.2.5}/docs/guides/color-markup.md +16 -3
- {logly-0.2.4 → logly-0.2.5}/docs/guides/concurrency.md +30 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/custom-levels.md +7 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/environment-variables.md +6 -7
- {logly-0.2.4 → logly-0.2.5}/docs/guides/exception-handling.md +36 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/file-logging.md +15 -3
- {logly-0.2.4 → logly-0.2.5}/docs/guides/formatting.md +12 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/rotation-retention-compression.md +25 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/sinks.md +2 -1
- {logly-0.2.4 → logly-0.2.5}/docs/guides/switching-from-other-libraries.md +1 -1
- logly-0.2.5/examples/custom_rotation.py +32 -0
- {logly-0.2.4 → logly-0.2.5}/logly/_logly.pyi +78 -23
- {logly-0.2.4 → logly-0.2.5}/logly/logger.py +719 -172
- {logly-0.2.4 → logly-0.2.5}/logly/models.py +9 -3
- {logly-0.2.4 → logly-0.2.5}/pyproject.toml +3 -0
- {logly-0.2.4 → logly-0.2.5}/src/lib.rs +253 -79
- logly-0.2.5/tests/test_bracket_markup_regression.py +385 -0
- logly-0.2.5/tests/test_catch_variants.py +198 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_compression.py +24 -0
- logly-0.2.4/tests/test_issue_135_136_regression.py → logly-0.2.5/tests/test_exception_catch_regression.py +7 -7
- logly-0.2.5/tests/test_logger_extras.py +157 -0
- logly-0.2.5/tests/test_sink_configuration.py +348 -0
- logly-0.2.4/crates/context/Cargo.toml +0 -7
- logly-0.2.4/crates/context/src/lib.rs +0 -435
- {logly-0.2.4 → logly-0.2.5}/.github/FUNDING.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/ISSUE_TEMPLATE/docs_issue.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/ISSUE_TEMPLATE/help_wanted.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/dependabot.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/pull_request_template.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/workflows/docs_publish.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/workflows/pypi_publish.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.github/workflows/testing.yml +0 -0
- {logly-0.2.4 → logly-0.2.5}/.gitignore +0 -0
- {logly-0.2.4 → logly-0.2.5}/.pre-commit-config.yaml +0 -0
- {logly-0.2.4 → logly-0.2.5}/CODE_OF_CONDUCT.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/CONTRIBUTING.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/LICENSE +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/color/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/compress/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/concurrency/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/concurrency/src/lib.rs +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/config/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/config/src/lib.rs +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/core/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/core/src/lib.rs +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/error/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/error/src/lib.rs +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/filter/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/filter/src/lib.rs +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/format/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/format/src/lib.rs +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/levels/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/levels/src/lib.rs +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/network/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/network/src/lib.rs +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/record/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/rotate/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/sink/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/source/Cargo.toml +0 -0
- {logly-0.2.4 → logly-0.2.5}/crates/source/src/lib.rs +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/.gitignore +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/.vitepress/config.ts +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/.vitepress/theme/custom.css +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/.vitepress/theme/index.ts +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/CNAME +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/api-reference/exceptions.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/api-reference/index.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/api-reference/integrations.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/api-reference/models.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/comparison.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/css/custom.css +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/basic-logging.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/compression.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/concurrency.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/context-binding.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/custom-levels.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/django-integration.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/enable-disable.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/exception-handling.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/fastapi-integration.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/file-logging.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/filtering.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/formatting.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/integration-catalog.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/integrations.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/json-logging.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/lazy-evaluation.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/multiple-sinks.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/patching.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/production-config.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/rich-integration.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/rotation.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/examples/stdlib-integration.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/getting-started.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/async-sinks.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/callbacks.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/celery.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/color-operations.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/compression-options.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/configure.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/console-output.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/context-binding.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/custom-colors.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/django.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/exception-callbacks.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/faq.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/fastapi.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/file-directories.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/filter-features.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/filtering.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/flask.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/gunicorn.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/independent-loggers.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/logging-handlers.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/network-config.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/network-logging.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/parse.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/propagate.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/queue-async.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/rich-console.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/scheduler.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/source-location-timestamps.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/source-location.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/stdlib-logging.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/structlog.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/telemetry.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/troubleshooting.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/guides/uvicorn.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/index.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/apscheduler.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/aws_cloudwatch.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/azure_monitor.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/celery.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/click.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/datadog.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/discord.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/django.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/elasticsearch.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/email.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/fastapi.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/flask.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/google_cloud_logging.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/graylog.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/gunicorn.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/http.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/index.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/kafka.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/logstash.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/loki.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/mongodb.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/newrelic.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/opentelemetry.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/postgresql.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/prometheus.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/propagate.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/rabbitmq.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/redis.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/rich.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/rq.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/sentry.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/seq.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/slack.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/sqlalchemy.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/starlette.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/stdlib.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/structlog.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/telemetry.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/tqdm.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/typer.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/integrations/uvicorn.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/package.json +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/android-chrome-192x192.png +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/android-chrome-512x512.png +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/apple-touch-icon.png +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/cover.png +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/favicon-16x16.png +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/favicon-32x32.png +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/favicon.ico +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/logo.ico +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/logo.png +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/robots.txt +0 -0
- {logly-0.2.4 → logly-0.2.5}/docs/public/site.webmanifest +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/README.md +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/apscheduler_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/aws_cloudwatch_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/azure_monitor_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/basic_logging.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/celery_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/click_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/color_markup.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/compression_example.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/concurrency.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/context_binding.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/custom_levels.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/datadog_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/discord_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/django_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/elasticsearch_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/email_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/enable_disable.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/exception_handling.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/fastapi_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/file_logging.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/filtering.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/flask_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/formatting.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/google_cloud_logging_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/graylog_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/gunicorn_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/http_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/json_logging.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/kafka_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/lazy_evaluation.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/logstash_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/loki_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/mongodb_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/multiple_sinks.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/newrelic_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/opentelemetry_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/patching.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/postgresql_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/production_config.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/prometheus_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/propagate_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/rabbitmq_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/redis_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/rich_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/rotation_example.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/rq_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/sentry_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/seq_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/slack_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/sqlalchemy_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/starlette_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/stdlib_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/structlog_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/telemetry_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/tqdm_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/typer_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/examples/uvicorn_integration.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/justfile +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/__init__.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/exceptions.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/__init__.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/_utils.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/apscheduler.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/aws_cloudwatch.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/azure_monitor.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/celery.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/click.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/datadog.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/discord.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/django.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/elasticsearch.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/email.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/fastapi.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/flask.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/google_cloud_logging.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/graylog.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/gunicorn.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/http.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/kafka.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/logstash.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/loki.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/mongodb.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/newrelic.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/opentelemetry.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/postgresql.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/prometheus.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/propagate.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/rabbitmq.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/redis.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/rich.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/rq.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/sentry.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/seq.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/slack.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/sqlalchemy.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/starlette.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/stdlib.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/structlog.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/telemetry.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/tqdm.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/typer.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/integrations/uvicorn.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/py.typed +0 -0
- {logly-0.2.4 → logly-0.2.5}/logly/typing.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/__init__.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_async_sinks.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_audit_regressions.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_callable_format_filter.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_catch_exceptions.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_catch_exclude.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_color_functions.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_color_output.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_comprehensive.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_concurrency_enqueue.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_concurrency_stress.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_configure.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_context_bind.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_copy.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_custom_levels.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_edge_cases.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_enable_disable.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_env_autoinit.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_exception_hierarchy.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_exception_method.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_exception_methods.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_filters.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_format_tokens.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_formatters.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_independent_loggers.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_apscheduler.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_aws_cloudwatch.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_azure_monitor.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_celery.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_click.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_datadog.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_discord.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_django.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_elasticsearch.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_email.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_fastapi.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_flask.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_google_cloud_logging.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_graylog.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_gunicorn.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_http.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_kafka.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_logstash.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_loki.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_mongodb.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_newrelic.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_opentelemetry.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_postgresql.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_prometheus.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_propagate.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_rabbitmq.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_redis.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_rich.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_rq.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_sentry.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_seq.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_slack.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_sqlalchemy.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_starlette.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_stdlib.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_structlog.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_telemetry.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_tqdm.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_typer.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_utils.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integration_uvicorn.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_integrations.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_levels.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_logging_handler.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_logly.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_models.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_opt.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_opt_depth_capture.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_opt_parameters.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_opt_record.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_parse.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_parse_static.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_patch.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_python_sinks.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_raw_mode.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_reinstall.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_retention.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_root_dir.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_rotation.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_rotation_retention.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_serialize.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_sink_params.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_sinks_console.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_sinks_file.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_start_stop.py +0 -0
- {logly-0.2.4 → logly-0.2.5}/tests/test_warn_alias.py +0 -0
|
@@ -81,14 +81,14 @@ dependencies = [
|
|
|
81
81
|
|
|
82
82
|
[[package]]
|
|
83
83
|
name = "color"
|
|
84
|
-
version = "0.2.
|
|
84
|
+
version = "0.2.5"
|
|
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.5"
|
|
92
92
|
dependencies = [
|
|
93
93
|
"bzip2",
|
|
94
94
|
"error",
|
|
@@ -100,23 +100,19 @@ dependencies = [
|
|
|
100
100
|
|
|
101
101
|
[[package]]
|
|
102
102
|
name = "concurrency"
|
|
103
|
-
version = "0.2.
|
|
103
|
+
version = "0.2.5"
|
|
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.5"
|
|
111
111
|
dependencies = [
|
|
112
112
|
"color",
|
|
113
113
|
"error",
|
|
114
114
|
]
|
|
115
115
|
|
|
116
|
-
[[package]]
|
|
117
|
-
name = "context"
|
|
118
|
-
version = "0.2.4"
|
|
119
|
-
|
|
120
116
|
[[package]]
|
|
121
117
|
name = "cookie"
|
|
122
118
|
version = "0.18.2"
|
|
@@ -148,7 +144,7 @@ dependencies = [
|
|
|
148
144
|
|
|
149
145
|
[[package]]
|
|
150
146
|
name = "core"
|
|
151
|
-
version = "0.2.
|
|
147
|
+
version = "0.2.5"
|
|
152
148
|
dependencies = [
|
|
153
149
|
"error",
|
|
154
150
|
"filter",
|
|
@@ -207,11 +203,11 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
|
207
203
|
|
|
208
204
|
[[package]]
|
|
209
205
|
name = "error"
|
|
210
|
-
version = "0.2.
|
|
206
|
+
version = "0.2.5"
|
|
211
207
|
|
|
212
208
|
[[package]]
|
|
213
209
|
name = "filter"
|
|
214
|
-
version = "0.2.
|
|
210
|
+
version = "0.2.5"
|
|
215
211
|
dependencies = [
|
|
216
212
|
"error",
|
|
217
213
|
"levels",
|
|
@@ -246,7 +242,7 @@ dependencies = [
|
|
|
246
242
|
|
|
247
243
|
[[package]]
|
|
248
244
|
name = "format"
|
|
249
|
-
version = "0.2.
|
|
245
|
+
version = "0.2.5"
|
|
250
246
|
dependencies = [
|
|
251
247
|
"chrono",
|
|
252
248
|
"error",
|
|
@@ -507,7 +503,7 @@ dependencies = [
|
|
|
507
503
|
|
|
508
504
|
[[package]]
|
|
509
505
|
name = "levels"
|
|
510
|
-
version = "0.2.
|
|
506
|
+
version = "0.2.5"
|
|
511
507
|
dependencies = [
|
|
512
508
|
"error",
|
|
513
509
|
]
|
|
@@ -544,12 +540,11 @@ checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
|
|
|
544
540
|
|
|
545
541
|
[[package]]
|
|
546
542
|
name = "logly"
|
|
547
|
-
version = "0.2.
|
|
543
|
+
version = "0.2.5"
|
|
548
544
|
dependencies = [
|
|
549
545
|
"color",
|
|
550
546
|
"compress",
|
|
551
547
|
"config",
|
|
552
|
-
"context",
|
|
553
548
|
"core",
|
|
554
549
|
"error",
|
|
555
550
|
"filter",
|
|
@@ -592,7 +587,7 @@ dependencies = [
|
|
|
592
587
|
|
|
593
588
|
[[package]]
|
|
594
589
|
name = "network"
|
|
595
|
-
version = "0.2.
|
|
590
|
+
version = "0.2.5"
|
|
596
591
|
dependencies = [
|
|
597
592
|
"chrono",
|
|
598
593
|
"error",
|
|
@@ -747,7 +742,7 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
|
|
|
747
742
|
|
|
748
743
|
[[package]]
|
|
749
744
|
name = "record"
|
|
750
|
-
version = "0.2.
|
|
745
|
+
version = "0.2.5"
|
|
751
746
|
dependencies = [
|
|
752
747
|
"levels",
|
|
753
748
|
]
|
|
@@ -768,7 +763,7 @@ dependencies = [
|
|
|
768
763
|
|
|
769
764
|
[[package]]
|
|
770
765
|
name = "rotate"
|
|
771
|
-
version = "0.2.
|
|
766
|
+
version = "0.2.5"
|
|
772
767
|
dependencies = [
|
|
773
768
|
"chrono",
|
|
774
769
|
"config",
|
|
@@ -816,13 +811,6 @@ version = "1.0.23"
|
|
|
816
811
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
817
812
|
checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
|
|
818
813
|
|
|
819
|
-
[[package]]
|
|
820
|
-
name = "schedule"
|
|
821
|
-
version = "0.2.4"
|
|
822
|
-
dependencies = [
|
|
823
|
-
"error",
|
|
824
|
-
]
|
|
825
|
-
|
|
826
814
|
[[package]]
|
|
827
815
|
name = "serde"
|
|
828
816
|
version = "1.0.229"
|
|
@@ -880,7 +868,7 @@ checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
|
|
|
880
868
|
|
|
881
869
|
[[package]]
|
|
882
870
|
name = "sink"
|
|
883
|
-
version = "0.2.
|
|
871
|
+
version = "0.2.5"
|
|
884
872
|
dependencies = [
|
|
885
873
|
"color",
|
|
886
874
|
"compress",
|
|
@@ -908,7 +896,7 @@ checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891"
|
|
|
908
896
|
|
|
909
897
|
[[package]]
|
|
910
898
|
name = "source"
|
|
911
|
-
version = "0.2.
|
|
899
|
+
version = "0.2.5"
|
|
912
900
|
|
|
913
901
|
[[package]]
|
|
914
902
|
name = "stable_deref_trait"
|
|
@@ -946,13 +934,13 @@ dependencies = [
|
|
|
946
934
|
|
|
947
935
|
[[package]]
|
|
948
936
|
name = "synstructure"
|
|
949
|
-
version = "0.
|
|
937
|
+
version = "0.14.0"
|
|
950
938
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
951
|
-
checksum = "
|
|
939
|
+
checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02"
|
|
952
940
|
dependencies = [
|
|
953
941
|
"proc-macro2",
|
|
954
942
|
"quote",
|
|
955
|
-
"syn
|
|
943
|
+
"syn 3.0.5",
|
|
956
944
|
]
|
|
957
945
|
|
|
958
946
|
[[package]]
|
|
@@ -1041,9 +1029,9 @@ dependencies = [
|
|
|
1041
1029
|
|
|
1042
1030
|
[[package]]
|
|
1043
1031
|
name = "ureq-proto"
|
|
1044
|
-
version = "0.6.
|
|
1032
|
+
version = "0.6.4"
|
|
1045
1033
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1046
|
-
checksum = "
|
|
1034
|
+
checksum = "f86fd172ccca569e458f61b6bdd6220965a9ef36e672a6852953b51a0e1583be"
|
|
1047
1035
|
dependencies = [
|
|
1048
1036
|
"base64",
|
|
1049
1037
|
"http",
|
|
@@ -1301,13 +1289,13 @@ dependencies = [
|
|
|
1301
1289
|
|
|
1302
1290
|
[[package]]
|
|
1303
1291
|
name = "yoke-derive"
|
|
1304
|
-
version = "0.8.
|
|
1292
|
+
version = "0.8.3"
|
|
1305
1293
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1306
|
-
checksum = "
|
|
1294
|
+
checksum = "33811428bee40dbceb6d545e95754741d17a6aef9a4849f0fd62e2ba4f412a78"
|
|
1307
1295
|
dependencies = [
|
|
1308
1296
|
"proc-macro2",
|
|
1309
1297
|
"quote",
|
|
1310
|
-
"syn
|
|
1298
|
+
"syn 3.0.5",
|
|
1311
1299
|
"synstructure",
|
|
1312
1300
|
]
|
|
1313
1301
|
|
|
@@ -1322,13 +1310,13 @@ dependencies = [
|
|
|
1322
1310
|
|
|
1323
1311
|
[[package]]
|
|
1324
1312
|
name = "zerofrom-derive"
|
|
1325
|
-
version = "0.1.
|
|
1313
|
+
version = "0.1.8"
|
|
1326
1314
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1327
|
-
checksum = "
|
|
1315
|
+
checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a"
|
|
1328
1316
|
dependencies = [
|
|
1329
1317
|
"proc-macro2",
|
|
1330
1318
|
"quote",
|
|
1331
|
-
"syn
|
|
1319
|
+
"syn 3.0.5",
|
|
1332
1320
|
"synstructure",
|
|
1333
1321
|
]
|
|
1334
1322
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
[workspace]
|
|
2
|
-
members = ["crates/color", "crates/compress", "crates/concurrency", "crates/config", "crates/
|
|
2
|
+
members = ["crates/color", "crates/compress", "crates/concurrency", "crates/config", "crates/core", "crates/error", "crates/filter", "crates/format", "crates/levels", "crates/network", "crates/record", "crates/rotate", "crates/sink", "crates/source"]
|
|
3
3
|
resolver = "2"
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "0.2.
|
|
6
|
+
version = "0.2.5"
|
|
7
7
|
edition = "2024"
|
|
8
8
|
license = "MIT"
|
|
9
9
|
readme = "README.md"
|
|
@@ -16,7 +16,6 @@ color = { path = "crates/color" }
|
|
|
16
16
|
compress = { path = "crates/compress" }
|
|
17
17
|
concurrency = { path = "crates/concurrency" }
|
|
18
18
|
config = { path = "crates/config" }
|
|
19
|
-
context = { path = "crates/context" }
|
|
20
19
|
engine = { package = "core", path = "crates/core" }
|
|
21
20
|
error = { path = "crates/error" }
|
|
22
21
|
filter = { path = "crates/filter" }
|
|
@@ -25,7 +24,6 @@ levels = { path = "crates/levels" }
|
|
|
25
24
|
network = { path = "crates/network" }
|
|
26
25
|
record = { path = "crates/record" }
|
|
27
26
|
rotate = { path = "crates/rotate" }
|
|
28
|
-
schedule = { path = "crates/schedule" }
|
|
29
27
|
sink = { path = "crates/sink" }
|
|
30
28
|
source = { path = "crates/source" }
|
|
31
29
|
|
|
@@ -73,7 +71,6 @@ strip = "symbols"
|
|
|
73
71
|
color.workspace = true
|
|
74
72
|
compress.workspace = true
|
|
75
73
|
config.workspace = true
|
|
76
|
-
context.workspace = true
|
|
77
74
|
engine.workspace = true
|
|
78
75
|
error.workspace = true
|
|
79
76
|
filter.workspace = true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: logly
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.5
|
|
4
4
|
Requires-Dist: typing-extensions>=4.0 ; python_full_version < '3.11'
|
|
5
5
|
Requires-Dist: rich>=14.2.0 ; extra == 'all'
|
|
6
6
|
Requires-Dist: fastapi>=0.115.0 ; extra == 'all'
|
|
@@ -522,7 +522,7 @@ asyncio.run(main())
|
|
|
522
522
|
```python
|
|
523
523
|
from logly import logger, parse_rich_markup
|
|
524
524
|
|
|
525
|
-
#
|
|
525
|
+
# Angle-bracket syntax
|
|
526
526
|
logger.info("<bold>Important</bold> message")
|
|
527
527
|
logger.error("<red>Error:</red> something went wrong")
|
|
528
528
|
logger.info("<bold, cyan>Combined styles</bold, cyan>")
|
|
@@ -543,7 +543,7 @@ from logly import BatchHttpJsonSink, logger
|
|
|
543
543
|
sink = BatchHttpJsonSink(
|
|
544
544
|
url="https://logs.example.com/ingest",
|
|
545
545
|
batch_size=100,
|
|
546
|
-
flush_interval=5
|
|
546
|
+
flush_interval=5,
|
|
547
547
|
headers={"Authorization": "Bearer token"},
|
|
548
548
|
)
|
|
549
549
|
|
|
@@ -640,7 +640,7 @@ Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
640
640
|
|
|
641
641
|
## Acknowledgements
|
|
642
642
|
|
|
643
|
-
Logly
|
|
643
|
+
Logly is backed by an independent, from-scratch Rust implementation with a Python-native API.
|
|
644
644
|
|
|
645
645
|
---
|
|
646
646
|
|
|
@@ -414,7 +414,7 @@ asyncio.run(main())
|
|
|
414
414
|
```python
|
|
415
415
|
from logly import logger, parse_rich_markup
|
|
416
416
|
|
|
417
|
-
#
|
|
417
|
+
# Angle-bracket syntax
|
|
418
418
|
logger.info("<bold>Important</bold> message")
|
|
419
419
|
logger.error("<red>Error:</red> something went wrong")
|
|
420
420
|
logger.info("<bold, cyan>Combined styles</bold, cyan>")
|
|
@@ -435,7 +435,7 @@ from logly import BatchHttpJsonSink, logger
|
|
|
435
435
|
sink = BatchHttpJsonSink(
|
|
436
436
|
url="https://logs.example.com/ingest",
|
|
437
437
|
batch_size=100,
|
|
438
|
-
flush_interval=5
|
|
438
|
+
flush_interval=5,
|
|
439
439
|
headers={"Authorization": "Bearer token"},
|
|
440
440
|
)
|
|
441
441
|
|
|
@@ -532,7 +532,7 @@ Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
532
532
|
|
|
533
533
|
## Acknowledgements
|
|
534
534
|
|
|
535
|
-
Logly
|
|
535
|
+
Logly is backed by an independent, from-scratch Rust implementation with a Python-native API.
|
|
536
536
|
|
|
537
537
|
---
|
|
538
538
|
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""Micro-benchmarks for the Logly hot path (stdlib only).
|
|
2
|
+
|
|
3
|
+
Usage:
|
|
4
|
+
python benchmarks/micro.py [--iterations N]
|
|
5
|
+
|
|
6
|
+
Reports median nanoseconds per log call for disabled, console, file,
|
|
7
|
+
formatted, JSON, lazy, bound-context, and enqueue logging.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import io
|
|
13
|
+
import statistics
|
|
14
|
+
import sys
|
|
15
|
+
import tempfile
|
|
16
|
+
import time
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _bench(label: str, iterations: int, func) -> None:
|
|
21
|
+
func() # warmup
|
|
22
|
+
samples: list[float] = []
|
|
23
|
+
batch = max(1, iterations // 20)
|
|
24
|
+
for _ in range(20):
|
|
25
|
+
start = time.perf_counter_ns()
|
|
26
|
+
for _ in range(batch):
|
|
27
|
+
func()
|
|
28
|
+
samples.append((time.perf_counter_ns() - start) / batch)
|
|
29
|
+
print(f"{label:28s} {statistics.median(samples):12.1f} ns/call")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def main() -> None:
|
|
33
|
+
iterations = (
|
|
34
|
+
int(sys.argv[sys.argv.index("--iterations") + 1]) if "--iterations" in sys.argv else 2000
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
from logly import Logger
|
|
38
|
+
|
|
39
|
+
quiet = Logger()
|
|
40
|
+
quiet.disable("logly")
|
|
41
|
+
_bench("disabled logger", iterations, lambda: quiet.info("hidden {}", 1))
|
|
42
|
+
|
|
43
|
+
plain = Logger()
|
|
44
|
+
plain.add(io.StringIO(), format="{message}")
|
|
45
|
+
_bench("console callback", iterations, lambda: plain.info("hello {}", "world"))
|
|
46
|
+
|
|
47
|
+
formatted = Logger()
|
|
48
|
+
formatted.add(io.StringIO())
|
|
49
|
+
_bench("default format", iterations, lambda: formatted.info("hello {}", "world"))
|
|
50
|
+
|
|
51
|
+
json_log = Logger()
|
|
52
|
+
json_log.add(io.StringIO(), serialize=True)
|
|
53
|
+
_bench("json serialize", iterations, lambda: json_log.info("hello {}", "world"))
|
|
54
|
+
|
|
55
|
+
lazy = Logger()
|
|
56
|
+
lazy.add(io.StringIO(), format="{message}")
|
|
57
|
+
_bench("lazy argument", iterations, lambda: lazy.opt(lazy=True).info("v=[{}]", lambda: "x"))
|
|
58
|
+
|
|
59
|
+
bound = Logger().bind(user="alice", request="r1")
|
|
60
|
+
bound.add(io.StringIO(), format="{message}")
|
|
61
|
+
_bench("bound context", iterations, lambda: bound.info("hello"))
|
|
62
|
+
|
|
63
|
+
tmp = Path(tempfile.mkdtemp()) / "bench.log"
|
|
64
|
+
file_log = Logger()
|
|
65
|
+
file_log.add(str(tmp), format="{message}")
|
|
66
|
+
_bench("file sink", iterations, lambda: file_log.info("hello {}", "world"))
|
|
67
|
+
file_log.complete()
|
|
68
|
+
file_log.remove()
|
|
69
|
+
|
|
70
|
+
dropped = 0
|
|
71
|
+
|
|
72
|
+
def enqueue_one() -> None:
|
|
73
|
+
nonlocal dropped
|
|
74
|
+
try:
|
|
75
|
+
queued.info("hello")
|
|
76
|
+
except RuntimeError:
|
|
77
|
+
# Bounded queue with drop-newest backpressure reports drops.
|
|
78
|
+
dropped += 1
|
|
79
|
+
|
|
80
|
+
queued = Logger()
|
|
81
|
+
queued.add(io.StringIO(), format="{message}", enqueue=True)
|
|
82
|
+
_bench("enqueue sink", iterations, enqueue_one)
|
|
83
|
+
queued.complete()
|
|
84
|
+
queued.remove()
|
|
85
|
+
if dropped:
|
|
86
|
+
print(f"(enqueue drops under load: {dropped})")
|
|
87
|
+
|
|
88
|
+
print("done")
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
if __name__ == "__main__":
|
|
92
|
+
main()
|
|
@@ -15,11 +15,9 @@ logly (Python extension)
|
|
|
15
15
|
├── source Source location & editor links
|
|
16
16
|
├── color ANSI rendering & markup parsing
|
|
17
17
|
├── config Configuration types & policies
|
|
18
|
-
├── context Bind, patch, & scoped context
|
|
19
18
|
├── compress Gzip, Zip, Bz2, Xz, Zstd codecs
|
|
20
19
|
├── concurrency Worker pool & backpressure
|
|
21
20
|
├── rotate Size, time, clock, weekday rotation
|
|
22
|
-
├── schedule Periodic task scheduler
|
|
23
21
|
├── network HTTP, TCP, UDP, Syslog sinks
|
|
24
22
|
└── error Unified error types
|
|
25
23
|
```
|
|
@@ -37,11 +35,9 @@ logly (Python extension)
|
|
|
37
35
|
| **[source](source/)** | Source location capture, clickable editor links (VS Code, JetBrains, Vim, Emacs, Sublime), and surrounding context reading. |
|
|
38
36
|
| **[color](color/)** | ANSI color rendering — maps levels to styles, parses angle-bracket and Rich-style markup, supports themes. |
|
|
39
37
|
| **[config](config/)** | Serialization-friendly configuration types for sinks, rotation, retention, compression, and enqueue modes. |
|
|
40
|
-
| **[context](context/)** | Structured context primitives for `bind()`, `contextualize()`, and `patch()` — merges key-value pairs into records. |
|
|
41
38
|
| **[compress](compress/)** | Compression codecs (Gzip, Zip, Bz2, Xz, Zstd) for rotated log files with retention-based cleanup. |
|
|
42
39
|
| **[concurrency](concurrency/)** | Background worker thread pool with channel-based dispatch and configurable backpressure. |
|
|
43
40
|
| **[rotate](rotate/)** | File rotation policies — size, interval, clock, and weekday triggers with non-destructive file renaming. |
|
|
44
|
-
| **[schedule](schedule/)** | Lightweight periodic task scheduler for rotation, cleanup, and health checks. |
|
|
45
41
|
| **[network](network/)** | Network sinks — HTTP/JSON (with batching), TCP, UDP, and Syslog transports for remote log forwarding. |
|
|
46
42
|
| **[error](error/)** | Canonical `LoglyError` enum and `LoglyResult<T>` type alias shared across all crates. |
|
|
47
43
|
|
|
@@ -53,9 +49,8 @@ levels ← record ← core ← sink ← format
|
|
|
53
49
|
↑ ↑ ↑
|
|
54
50
|
filter source color
|
|
55
51
|
↑
|
|
56
|
-
config
|
|
52
|
+
config
|
|
57
53
|
↑
|
|
58
|
-
compress, concurrency, rotate, schedule, network
|
|
59
54
|
```
|
|
60
55
|
|
|
61
56
|
## Development
|