1
0
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:
Gerasimos (Makis) Maropoulos
2020-09-17 18:01:35 +03:00
parent 0c125baf2a
commit 7fa2666f58
4 changed files with 46 additions and 15 deletions

View File

@@ -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

View File

@@ -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")
}