2013-06-03 29 views
27

Có trình bao bọc nào tốt cho đăng nhập dựa trên cấp độ trong golang không? Nếu không, làm thế nào tôi nên đi về việc thực hiện một bản thân mình?Cách triển khai đăng nhập dựa trên cấp độ trong golang?

Điều tôi muốn khá đơn giản. Tôi muốn có một vài chức năng, ví dụ:

log.Error() 
log.Info() 

vv để hiển thị kết quả đầu ra của chúng cũng như lưu chúng trong tệp nhật ký (dựa trên cấp cho chương trình làm đối số dòng lệnh). Làm cách nào để triển khai trình bao bọc này?

+2

https://github.com/jcelliott/lumber – elithrar

+0

@elithrar cảm ơn! – pymd

+0

@elithrar, cảm ơn, nó đơn giản và powerfool –

Trả lời

3

Hãy xem http://cgl.tideland.biz và ở đó tại gói "applog". Nó hoạt động theo cách đó.

PS: Toàn bộ CGL hiện đang được làm lại và sẽ sớm được phát hành với các tính năng mới, nhưng dưới một tên khác. ;)

+0

cảm ơn rất nhiều sự giúp đỡ của bạn! – pymd

+0

tiếc là các liên kết đã chết –

+0

Tất cả các liên kết đều đã chết hoặc không có liên quan gì đến việc ghi nhật ký. – neurosnap

4

Tôi nghĩ seelog phù hợp với requirements của bạn và dường như nó khá phổ biến vì nó xuất hiện thường xuyên trong các cuộc thảo luận đăng nhập. Tôi không bao giờ sử dụng nó nghiêm túc, vì vậy tôi không thể bình luận vượt ra ngoài đó.

+0

Dường như seelog phải có được/giải phóng khóa toàn cầu cho mỗi câu lệnh. –

2

stdlog phù hợp chính xác yêu cầu của bạn:

log := stdlog.GetFromFlags() 
log.Info("Connecting to the server...") 
log.Errorf("Connection failed: %q", err) 
1

Uber-go/Zap: Nhanh chóng, cấu trúc, san lấp khai thác gỗ tại Gò

0

https://github.com/hashicorp/logutils Tôi thấy điều này là rất dễ sử dụng và bạn không thậm chí cần phải thay đổi các cuộc gọi phương thức thành log.Printf của thư viện std.

0

Tôi đang làm việc với rlog vào lúc này và thích cách tiếp cận của họ. Mã có vẻ tốt, đơn giản và đầy đủ tài liệu.

gì thuyết phục tôi:

  • không phụ thuộc bên ngoài
  • tôi có thể sử dụng bất cứ nơi nào mà không đi rlog.Info() xung quanh tham chiếu
  • sử dụng tốt các biến môi trường
  • số tùy ý các cấp dấu vết ví dụ rlog.Trace(4, "foo")
0

Tôi đã thêm hỗ trợ mức ghi nhật ký vào gói nhật ký Go tích hợp sẵn.Bạn có thể tìm mã của tôi ở đây:

https://github.com/gologme/log

Ngoài việc thêm hỗ trợ cho Info, Cảnh báo, và Debug, người dùng cũng có thể xác định mức độ khai thác gỗ tùy ý riêng của họ. Mức ghi nhật ký được bật và tắt riêng lẻ. Điều này có nghĩa là bạn có thể bật Nhật ký gỡ lỗi mà không cần phải nhận mọi thứ khác.

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