log パッケージは、App Engine アプリケーションからアプリケーションのログに書き込み、クエリを実行する手段を提供します。
例:
c := appengine.NewContext(r) query := &log.Query{ AppLogs: true, Versions: []string{"1"}, } for results := query.Run(c); ; { record, err := results.Next() if err == log.Done { log.Infof(c, "Done processing results") break } if err != nil { log.Errorf(c, "Failed to retrieve next log: %v", err) break } log.Infof(c, "Saw record %v", record) }
変数
Done
Done は、クエリの反復処理が完了したときに返されます。
関数
func Criticalf
Criticalf は Debugf に似ていますが、Critical レベルです。
func Debugf
Debugf は、fmt.Printf と類似した形式に従って引数をフォーマットし、Debug レベルでテキストをログ メッセージとして記録します。メッセージは、渡されたコンテキストのリクエストに関連付けらえます。
func Errorf
Errorf は Debugf と似ていますが、Error レベルです。
func Infof
Infof は Debugf と似ていますが、Info レベルです。
func Warningf
Warningf は Debugf に似ていますが、Warning レベルです。
AppLog
AppLog は、単一アプリケーション レベルのログを表します。
Query
type Query struct {
// Start time specifies the earliest log to return (inclusive).
StartTime time.Time
// End time specifies the latest log to return (exclusive).
EndTime time.Time
// Offset specifies a position within the log stream to resume reading from,
// and should come from a previously returned Record's field of the same name.
Offset []byte
// Incomplete controls whether active (incomplete) requests should be included.
Incomplete bool
// AppLogs indicates if application-level logs should be included.
AppLogs bool
// ApplyMinLevel indicates if MinLevel should be used to filter results.
ApplyMinLevel bool
// If ApplyMinLevel is true, only logs for requests with at least one
// application log of MinLevel or higher will be returned.
MinLevel int
// Versions is the major version IDs whose logs should be retrieved.
// Logs for specific modules can be retrieved by the specifying versions
// in the form "module:version"; the default module is used if no module
// is specified.
Versions []string
// A list of requests to search for instead of a time-based scan. Cannot be
// combined with filtering options such as StartTime, EndTime, Offset,
// Incomplete, ApplyMinLevel, or Versions.
RequestIDs []string
}
Query は、ログクエリを定義します。
func (*Query) Run
Run は、ログレコードのクエリを開始します。このレコードには、リクエストとアプリケーション レベルのログ情報が含まれています。
Record
type Record struct {
AppID string
ModuleID string
VersionID string
RequestID []byte
IP string
Nickname string
AppEngineRelease string
// The time when this request started.
StartTime time.Time
// The time when this request finished.
EndTime time.Time
// Opaque cursor into the result stream.
Offset []byte
// The time required to process the request.
Latency time.Duration
MCycles int64
Method string
Resource string
HTTPVersion string
Status int32
// The size of the request sent back to the client, in bytes.
ResponseSize int64
Referrer string
UserAgent string
URLMapEntry string
Combined string
Host string
// The estimated cost of this request, in dollars.
Cost float64
TaskQueueName string
TaskName string
WasLoadingRequest bool
PendingTime time.Duration
Finished bool
AppLogs []AppLog
// Mostly-unique identifier for the instance that handled the request if available.
InstanceID string
}
Record には、1 つのウェブ リクエストに関するすべての情報が含まれます。
Result
type Result struct {
// contains filtered or unexported fields
}
Result は、クエリの結果を表します。
func (*Result) Next
Next は、次のログレコードを返します。