Package log provides the means of writing and querying an application's logs from within an App Engine application.
Example:
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 ) }
Variables
Done
Done is returned when a query iteration has completed.
Functions
func Criticalf
Criticalf is like Debugf, but at Critical level.
func Debugf
Debugf formats its arguments according to the format, analogous to fmt.Printf, and records the text as a log message at Debug level. The message will be associated with the request linked with the provided context.
func Errorf
Errorf is like Debugf, but at Error level.
func Infof
Infof is like Debugf, but at Info level.
func Warningf
Warningf is like Debugf, but at Warning level.
AppLog
AppLog represents a single application-level log.
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 defines a logs query.
func (*Query) Run
Run starts a query for log records, which contain request and application level log information.
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 contains all the information for a single web request.
Result
type
Result
struct
{
//
contains
filtered
or
unexported
fields
}
Result represents the result of a query.
func (*Result) Next
Next returns the next log record,

