mirror of
https://github.com/kataras/iris.git
synced 2025-12-18 10:27:06 +00:00
add accesslog+MVC example
This commit is contained in:
@@ -7,4 +7,4 @@
|
||||
2020-09-13 13:38:18 0s 401 GET /admin ::1 0 B 0 B
|
||||
2020-09-13 13:38:19 0s 200 GET /admin ::1 auth=admin:admin 0 B 48 B
|
||||
2020-09-13 13:38:22 0s 200 GET /session ::1 session_id=23fe763f-c9d5-4d65-9e1a-2cc8d23d1aa3 session_test_key=session_test_value auth=admin:admin 0 B 2 B
|
||||
2020-09-13 13:38:25 2.0001204s 200 GET /fields ::1 job_latency=2s auth=admin:admin 0 B 2 B
|
||||
2020-09-13 13:38:25 2.0001204s 200 GET /fields ::1 job_latency=2s auth=admin:admin user=user-id:user-name 0 B 2 B
|
||||
|
||||
@@ -159,6 +159,16 @@ func sessionHandler(ctx iris.Context) {
|
||||
ctx.WriteString("OK")
|
||||
}
|
||||
|
||||
type user struct {
|
||||
ID string
|
||||
Username string
|
||||
}
|
||||
|
||||
// Log custom structs, they can implement the fmt.Stringer interface too.
|
||||
func (u user) String() string {
|
||||
return u.ID + ":" + u.Username
|
||||
}
|
||||
|
||||
func fieldsHandler(ctx iris.Context) {
|
||||
start := time.Now()
|
||||
// simulate a heavy job...
|
||||
@@ -169,5 +179,13 @@ func fieldsHandler(ctx iris.Context) {
|
||||
logFields := accesslog.GetFields(ctx)
|
||||
logFields.Set("job_latency", end.Round(time.Second))
|
||||
|
||||
// Simulate a database fetch or anything
|
||||
// to get a "user" and log it:
|
||||
u := user{
|
||||
ID: "user-id",
|
||||
Username: "user-name",
|
||||
}
|
||||
logFields.Set("user", u)
|
||||
|
||||
ctx.WriteString("OK")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user