2012-11-21 23 views
9

Cách thành ngữ để thực hiện đăng nhập là gì?Cách triển khai ghi nhật ký thành ngữ trong thư viện Go?

+0

Có rất nhiều thư viện của bên thứ ba cung cấp nhiều tính năng triển khai đầy đủ hơn. Ví dụ, trong thư viện chuẩn, tôi đã bỏ lỡ một tùy chọn thuận tiện cho các định dạng tùy chỉnh và mức nhật ký (gỡ lỗi, thông tin, ...) và tôi sẽ thực hiện thư viện riêng của mình - [go-log] (https://github.com/scale) -it/go-log). Hãy nhìn vào nó. –

Trả lời

11

Tạo tệp khai báo biến toàn cục nhật ký. Sau đó, sử dụng hàm init() thành ngữ của Go để khởi tạo biến khi khởi động.

logger.go:

package xxx 

import (
    "log" 
    "os" 
) 

var logger *log.Logger 
func init() { 
    logger = log.New(os.Stderr, "xxx: ", log.Ldate | log.Ltime | log.Lshortfile) 
} 

example.go:

func test() { 
    logger.Println("Logged") 
} 

Phương pháp này cung cấp những lợi ích mà bạn có thể sử dụng thực hiện logger duy nhất có thể được cấu hình từ một đơn tập tin.

EDIT: ThomasKappler đã chỉ ra rằng nếu bạn chỉ sử dụng một trình ghi nhật ký toàn cục, bạn có thể sử dụng trình ghi nhật ký sẵn có của gói nhật ký và định cấu hình nó bằng SetFlags. Sự khác biệt duy nhất là bạn phải rõ ràng hơn và nhập gói nhật ký.

+11

Nếu bạn chỉ sử dụng một trình ghi nhật ký toàn cục, bạn có thể bỏ qua việc tạo nhật ký của riêng mình và sử dụng các chức năng của gói nhật ký như log.Println v.v. Bạn vẫn có thể cấu hình nó bằng log.SetFlags(). –

+0

@ThomasKappler Cảm ơn, tôi không biết điều đó. Tôi thích sử dụng phương pháp này bởi vì tôi có thể mở rộng logger mà không phá vỡ chức năng hiện có (cộng với tôi không phải nhập gói nhật ký ở mọi nơi) – liamzebedee

Các vấn đề liên quan