Mô-đun ghi nhật ký trong Python là gì?

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

Đăng nhập bằng Python là gì?

Ghi nhật ký là một mô-đun Python trong thư viện chuẩn cung cấp phương tiện để làm việc với khung phát hành thông báo nhật ký từ các chương trình Python . Ghi nhật ký được sử dụng để theo dõi các sự kiện xảy ra khi phần mềm chạy. Mô-đun này được sử dụng rộng rãi bởi các nhà phát triển khi họ làm việc để đăng nhập.

Chức năng của đăng nhập là gì?

Khai thác gỗ là quá trình cắt, xử lý và di chuyển cây đến địa điểm vận chuyển .

Tôi có nên sử dụng Python ghi nhật ký không?

Trong Python, mô-đun ghi nhật ký được sử dụng để ghi lại các sự kiện và lỗi đó. Một sự kiện có thể được mô tả bằng một thông báo và có thể tùy ý chứa dữ liệu dành riêng cho sự kiện đó. Các sự kiện cũng có cấp độ hoặc mức độ nghiêm trọng do nhà phát triển chỉ định. Việc ghi nhật ký rất hữu ích để gỡ lỗi và theo dõi mọi thông tin cần thiết .

Làm cách nào để cài đặt mô-đun ghi nhật ký trong 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

Chủ Đề