Tôi muốn triển khai trình ghi nhật ký tùy chọn trong một hàm. Một cái gì đó như:Thực hiện trình ghi nhật ký tùy chọn trong mã
def foo(arg1, arg2, arg3, logger=None):
logger = logger or (lambda *x: None)
...
self.logger.debug("The connection is lost.")
Tôi muốn đăng nhập xảy ra trong trường hợp trình ghi nhật ký tồn tại. Nếu không, quá trình gỡ lỗi của trình ghi nhật ký sẽ không làm gì cả.
Về cơ bản, cách dễ dàng để đạt được điều này là lồng mọi câu lệnh gỡ lỗi vào khối if logger
, nhưng có vẻ lộn xộn khi có nhiều câu lệnh gỡ lỗi.
Bạn không chắc chắn cách thức này sẽ hoạt động trong tình huống của mình, nhưng bạn có thể dẫn hàm bằng kiểm tra nếu trình ghi nhật ký tồn tại không, và nếu không, hãy tạo trình ghi nhật ký có cùng tên ('logger') và định tuyến đầu ra tới 'os.devnul'? – RocketDonkey
@iTayb Xin chào, bạn có một mô tả khá đơn giản về những gì bạn muốn (để có một trình đăng nhập giả). nhưng khai thác python thường không được sử dụng theo cách này theo như tôi biết. Như bạn có thể đạt được đăng nhập lọc sử dụng tên của logger, Tôi có thể hỏi tại sao (trong tình huống nào) bạn vẫn cần loại giải pháp này? – tdihp
@tdihp Tôi muốn phát triển một đoạn mã, có thể ghi nhật ký hoạt động của nó vào trình ghi được cung cấp. Mã này phải di động. Nó (hy vọng) sẽ được thực hiện trong nhiều dự án khác nhau, và tôi không cung cấp môi trường khai thác gỗ. Nhà phát triển có quyết định xem anh ấy có muốn ghi lại hoạt động của chức năng hay không. Tôi chỉ cho anh ta tùy chọn. – iTayb