GetLogger Python

Mô-đun này đã là một phần của Thư viện chuẩn của Python kể từ phiên bản 2. 3. Nó được mô tả ngắn gọn trong PEP 282. Tài liệu này nổi tiếng là khó đọc, ngoại trừ

Thay vào đó, loguru cung cấp một cách tiếp cận để ghi nhật ký, gần như đơn giản bằng cách sử dụng một câu lệnh

[loggers]
keys=root

[handlers]
keys=stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=[sys.stderr,]

[formatter_formatter]
format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
0 đơn giản

Ghi nhật ký phục vụ hai mục đích

  • Nhật ký chẩn đoán ghi lại các sự kiện liên quan đến hoạt động của ứng dụng. Ví dụ: nếu người dùng gọi để báo cáo lỗi, nhật ký có thể được tìm kiếm theo ngữ cảnh
  • Nhật ký kiểm tra ghi lại các sự kiện để phân tích kinh doanh. Các giao dịch của người dùng có thể được trích xuất và kết hợp với các chi tiết người dùng khác cho các báo cáo hoặc để tối ưu hóa mục tiêu kinh doanh

… hay In?

Lần duy nhất mà

[loggers]
keys=root

[handlers]
keys=stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=[sys.stderr,]

[formatter_formatter]
format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
0 là một tùy chọn tốt hơn ghi nhật ký là khi mục tiêu là hiển thị câu lệnh trợ giúp cho ứng dụng dòng lệnh. Các lý do khác khiến việc ghi nhật ký tốt hơn
[loggers]
keys=root

[handlers]
keys=stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=[sys.stderr,]

[formatter_formatter]
format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
0

  • , được tạo với mọi sự kiện ghi nhật ký, chứa thông tin chẩn đoán có sẵn như tên tệp, đường dẫn đầy đủ, chức năng và số dòng của sự kiện ghi nhật ký
  • Các sự kiện được đăng nhập trong các mô-đun đi kèm sẽ tự động được truy cập thông qua trình ghi nhật ký gốc tới luồng ghi nhật ký của ứng dụng của bạn, trừ khi bạn lọc chúng ra
  • Việc ghi nhật ký có thể được tắt một cách có chọn lọc bằng cách sử dụng phương pháp hoặc bị vô hiệu hóa bằng cách đặt thuộc tính
    [loggers]
    keys=root
    
    [handlers]
    keys=stream_handler
    
    [formatters]
    keys=formatter
    
    [logger_root]
    level=DEBUG
    handlers=stream_handler
    
    [handler_stream_handler]
    class=StreamHandler
    level=DEBUG
    formatter=formatter
    args=[sys.stderr,]
    
    [formatter_formatter]
    format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
    
    0 thành
    [loggers]
    keys=root
    
    [handlers]
    keys=stream_handler
    
    [formatters]
    keys=formatter
    
    [logger_root]
    level=DEBUG
    handlers=stream_handler
    
    [handler_stream_handler]
    class=StreamHandler
    level=DEBUG
    formatter=formatter
    args=[sys.stderr,]
    
    [formatter_formatter]
    format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
    
    1

Đăng nhập vào một thư viện

Ghi chú cho là trong hướng dẫn ghi nhật ký. Bởi vì người dùng, chứ không phải thư viện, nên quyết định điều gì sẽ xảy ra khi một sự kiện ghi nhật ký xảy ra, nên một lời khuyên cần được lặp lại

Ghi chú

Bạn không nên thêm bất kỳ trình xử lý nào ngoài NullHandler vào bộ ghi nhật ký của thư viện

Cách thực hành tốt nhất khi khởi tạo trình ghi nhật ký trong thư viện là chỉ tạo chúng bằng cách sử dụng biến toàn cục

[loggers]
keys=root

[handlers]
keys=stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=[sys.stderr,]

[formatter_formatter]
format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
2. mô-đun tạo một hệ thống phân cấp các trình ghi nhật ký bằng cách sử dụng ký hiệu dấu chấm, do đó, việc sử dụng
[loggers]
keys=root

[handlers]
keys=stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=[sys.stderr,]

[formatter_formatter]
format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
2 đảm bảo không có xung đột tên

Đây là một ví dụ về cách thực hành tốt nhất từ ​​nguồn yêu cầu – hãy đặt điều này vào

[loggers]
keys=root

[handlers]
keys=stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=[sys.stderr,]

[formatter_formatter]
format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
5 của bạn

import logging
logging.getLogger[__name__].addHandler[logging.NullHandler[]]

Đăng nhập vào một ứng dụng

Ứng dụng mười hai yếu tố, một tài liệu tham khảo có thẩm quyền về thực hành tốt trong phát triển ứng dụng, có một phần về thực tiễn tốt nhất về ghi nhật ký. Nó ủng hộ mạnh mẽ việc coi các sự kiện nhật ký là một luồng sự kiện và để gửi luồng sự kiện đó tới đầu ra tiêu chuẩn để môi trường ứng dụng xử lý

Có ít nhất ba cách để định cấu hình bộ ghi

  • Sử dụng tệp có định dạng INI
    • chuyên nghiệp. có thể cập nhật cấu hình trong khi chạy, sử dụng chức năng lắng nghe trên ổ cắm
    • Côn. kiểm soát ít hơn [e. g. bộ lọc hoặc bộ ghi nhật ký được phân lớp tùy chỉnh] hơn mức có thể khi định cấu hình bộ ghi nhật ký trong mã
  • Sử dụng từ điển hoặc tệp có định dạng JSON
    • chuyên nghiệp. ngoài việc cập nhật trong khi chạy, có thể tải từ tệp bằng mô-đun, trong thư viện chuẩn kể từ Python 2. 6
    • Côn. kiểm soát ít hơn so với khi định cấu hình trình ghi nhật ký trong mã
  • Sử dụng mã
    • chuyên nghiệp. toàn quyền kiểm soát cấu hình
    • Côn. sửa đổi yêu cầu thay đổi mã nguồn

Cấu hình ví dụ qua tệp INI

Hãy để chúng tôi nói rằng tệp có tên là

[loggers]
keys=root

[handlers]
keys=stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=[sys.stderr,]

[formatter_formatter]
format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
8. Thông tin chi tiết về định dạng tệp có trong phần hướng dẫn ghi nhật ký

[loggers]
keys=root

[handlers]
keys=stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=[sys.stderr,]

[formatter_formatter]
format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s

Sau đó sử dụng

[loggers]
keys=root

[handlers]
keys=stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=[sys.stderr,]

[formatter_formatter]
format=%[asctime]s %[name]-12s %[levelname]-8s %[message]s
9 trong mã

import logging
from logging.config import fileConfig

fileConfig['logging_config.ini']
logger = logging.getLogger[]
logger.debug['often makes a very good meal of %s', 'visiting tourists']

Cấu hình ví dụ qua từ điển

Kể từ Python 2. 7, bạn có thể sử dụng từ điển với các chi tiết cấu hình. PEP 391 chứa danh sách các thành phần bắt buộc và tùy chọn trong từ điển cấu hình

GetLogger trong Python là gì?

Hàm getLogger[] chấp nhận một đối số duy nhất - tên của trình ghi nhật ký. Nó trả về một tham chiếu đến một phiên bản trình ghi với tên được chỉ định nếu được cung cấp hoặc gốc nếu không . Nhiều lệnh gọi getLogger[] có cùng tên sẽ trả về một tham chiếu đến cùng một đối tượng logger.

Làm cách nào để định cấu hình trình ghi nhật ký trong Python?

Bạn có thể định cấu hình ghi nhật ký như minh họa ở trên bằng cách sử dụng các hàm của mô-đun và lớp hoặc bằng cách tạo tệp cấu hình hoặc từ điển và tải tệp đó bằng cách sử dụng fileConfig[] hoặc dictConfig[] tương ứng. These are useful in case you want to change your logging configuration in a running application.

Làm cách nào để cài đặt đăng nhập bằng Python?

Cài đặt gói Ghi nhật ký trên Linux bằng PIP .
Yêu cầu
Bước 1. Thiết lập môi trường Python trên hệ điều hành Linux của chúng tôi. .
Bước 2. Bây giờ chúng tôi cài đặt trình quản lý PIP. .
Bước 3. Bây giờ chúng ta sẽ sử dụng trình quản lý PIP để cài đặt gói Ghi nhật ký. .
Xác minh việc cài đặt gói Ghi nhật ký trên Linux bằng PIP

Làm cách nào để in nhật ký Python?

Python - In nhật ký trong tệp. Nếu bạn muốn in nhật ký python trong một tệp thay vì trên bảng điều khiển thì chúng ta có thể làm như vậy bằng cách sử dụng phương thức basicConfig[] bằng cách cung cấp tên tệp và chế độ tệp làm tham số. The format of the message can be specified by using format parameter in basicConfig[] method.

Chủ Đề