[RICPLT-2727] RoutingManagerSimulator - add code
[ric-plt/e2mgr.git] / tools / RoutingManagerSimulator / go / logger.go
1 //
2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //      http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16
17 //  This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 //  platform project (RICP).
19
20 /*
21  * Routing Manager
22  *
23  * This is the Swagger/OpenAPI 2.0 definition of Routing Manager's Northbound API.
24  *
25  * API version: 0.4.0
26  * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
27  */
28
29 package swagger
30
31 import (
32     "bytes"
33     "encoding/json"
34     "io/ioutil"
35     "log"
36     "net/http"
37     "time"
38 )
39
40 func Logger(inner http.Handler, name string) http.Handler {
41     return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
42         start := time.Now()
43
44         inner.ServeHTTP(w, r)
45
46         body, err := ioutil.ReadAll(r.Body)
47         if err != nil {
48             log.Printf("Error reading body: %v", err)
49             http.Error(w, "can't read body", http.StatusBadRequest)
50             return
51         }
52
53         buffer := new(bytes.Buffer)
54         _ =json.Compact(buffer, body)
55
56         log.Printf(
57             "%s %s  body: %s elapsed: %s",
58             r.Method,
59             r.RequestURI,
60             buffer,
61             time.Since(start),
62         )
63     })
64 }