github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/log/syslog/syslog.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build !windows && !plan9 6 7 package syslog 8 9 import ( 10 "github.com/shogo82148/std/log" 11 "github.com/shogo82148/std/sync" 12 ) 13 14 // Priorityは、syslogの施設と重大度の組み合わせです。 15 // 例えば、[LOG_ALERT] | [LOG_FTP] は、FTP施設からのアラート重大度メッセージを送信します。 16 // デフォルトの重大度は [LOG_EMERG] で、デフォルトの施設は [LOG_KERN] です。 17 type Priority int 18 19 const ( 20 21 // /usr/include/sys/syslog.hから取得。 22 // これらはLinux、BSD、OS Xで同じです。 23 LOG_EMERG Priority = iota 24 LOG_ALERT 25 LOG_CRIT 26 LOG_ERR 27 LOG_WARNING 28 LOG_NOTICE 29 LOG_INFO 30 LOG_DEBUG 31 ) 32 33 const ( 34 35 // /usr/include/sys/syslog.hから取得。 36 // これらはLinux、BSD、OS XでLOG_FTPまで同じです。 37 LOG_KERN Priority = iota << 3 38 LOG_USER 39 LOG_MAIL 40 LOG_DAEMON 41 LOG_AUTH 42 LOG_SYSLOG 43 LOG_LPR 44 LOG_NEWS 45 LOG_UUCP 46 LOG_CRON 47 LOG_AUTHPRIV 48 LOG_FTP 49 _ 50 _ 51 _ 52 _ 53 LOG_LOCAL0 54 LOG_LOCAL1 55 LOG_LOCAL2 56 LOG_LOCAL3 57 LOG_LOCAL4 58 LOG_LOCAL5 59 LOG_LOCAL6 60 LOG_LOCAL7 61 ) 62 63 // Writerはsyslogサーバへの接続です。 64 type Writer struct { 65 priority Priority 66 tag string 67 hostname string 68 network string 69 raddr string 70 71 mu sync.Mutex 72 conn serverConn 73 } 74 75 // Newはシステムログデーモンへの新しい接続を確立します。戻り値のライターへの 76 // 各書き込みは、指定された優先度(syslog施設と重大度の組み合わせ)と 77 // プレフィックスタグを持つログメッセージを送信します。タグが空の場合、[os.Args][0]が使用されます。 78 func New(priority Priority, tag string) (*Writer, error) 79 80 // Dialは、指定されたネットワーク上のアドレスraddrに接続することで 81 // ログデーモンへの接続を確立します。戻り値のライターへの 82 // 各書き込みは、施設と重大度(priorityから)およびタグを持つログメッセージを送信します。 83 // タグが空の場合、[os.Args][0]が使用されます。 84 // ネットワークが空の場合、Dialはローカルのsyslogサーバーに接続します。 85 // それ以外の場合は、ネットワークとraddrの有効な値については、net.Dialのドキュメンテーションを参照してください。 86 func Dial(network, raddr string, priority Priority, tag string) (*Writer, error) 87 88 // Writeはログメッセージをsyslogデーモンに送信します。 89 func (w *Writer) Write(b []byte) (int, error) 90 91 // Closeはsyslogデーモンへの接続を閉じます。 92 func (w *Writer) Close() error 93 94 // Emergは、severity [LOG_EMERG] のメッセージをログに記録します。Newに渡されたseverityは無視されます。 95 func (w *Writer) Emerg(m string) error 96 97 // Alertは、severity [LOG_ALERT] のメッセージをログに記録します。Newに渡されたseverityは無視されます。 98 func (w *Writer) Alert(m string) error 99 100 // Critは、severity [LOG_CRIT] のメッセージをログに記録します。Newに渡されたseverityは無視されます。 101 func (w *Writer) Crit(m string) error 102 103 // Errは、severity [LOG_ERR] のメッセージをログに記録します。Newに渡されたseverityは無視されます。 104 func (w *Writer) Err(m string) error 105 106 // Warningは、severity [LOG_WARNING] のメッセージをログに記録します。Newに渡されたseverityは無視されます。 107 func (w *Writer) Warning(m string) error 108 109 // Noticeは、severity [LOG_NOTICE] のメッセージをログに記録します。Newに渡されたseverityは無視されます。 110 func (w *Writer) Notice(m string) error 111 112 // Infoは、severity [LOG_INFO] のメッセージをログに記録します。Newに渡されたseverityは無視されます。 113 func (w *Writer) Info(m string) error 114 115 // Debugは、severity [LOG_DEBUG] のメッセージをログに記録します。Newに渡されたseverityは無視されます。 116 func (w *Writer) Debug(m string) error 117 118 // NewLoggerは、指定された優先度(syslog施設とseverityの組み合わせ)でシステムログサービスに書き込まれる [log.Logger] を作成します。 119 // logFlag引数は、Loggerを作成するために [log.New] に渡されるフラグセットです。 120 func NewLogger(p Priority, logFlag int) (*log.Logger, error)