Documentation
¶
Index ¶
- Variables
- func BasicHello(w http.ResponseWriter, r *http.Request)
- func Daemon()
- func DoJsonPost(uri string, args, ret interface{}) error
- func Engine() http.Handler
- func InitLog(fn, prefix string) *log.Logger
- func SetLog()
- type AppendStruct
- type Cli
- type ErrInfo
- type HandlerInfo
- type LogMux
- type LogResponseWriter
- type MgoConfig
- type ReqLogDB
- type RequestInfo
- type RequestLogger
- type RequestLoggerStat
- type ServeRequestLogger
- type StatRequestInfo
Constants ¶
This section is empty.
Variables ¶
var ErrGetStat = errors.New("get stat error")
var ErrPostOne = errors.New("post one error")
ErrPostOne: you could not post one
Functions ¶
func BasicHello ¶
func BasicHello(w http.ResponseWriter, r *http.Request)
BasicHello is test for http
func DoJsonPost ¶
DoJsonPost is a general api for http post
Types ¶
type AppendStruct ¶
type AppendStruct struct {
// contains filtered or unexported fields
}
AppendStruct holds log file needed
func NewAppender ¶
func NewAppender(fn string) (*AppendStruct, error)
NewAppender create an append only log file with debug info
func (*AppendStruct) Restart ¶
func (as *AppendStruct) Restart() error
type Cli ¶
Cli package a http client and baseurl
func (*Cli) SetBaseURL ¶
SetBaseURL change base url for the client
type HandlerInfo ¶
type HandlerInfo struct {
Method string
Handler http.HandlerFunc
}
HandlerInfo holds method and handle function
type LogMux ¶
type LogMux struct {
// contains filtered or unexported fields
}
LogMux is a mux with log
type LogResponseWriter ¶
type LogResponseWriter struct {
// contains filtered or unexported fields
}
LogResponseWriter implement a interface for http
func (*LogResponseWriter) Header ¶
func (lw *LogResponseWriter) Header() http.Header
Header implement response writer
func (*LogResponseWriter) Write ¶
func (lw *LogResponseWriter) Write(bt []byte) (int, error)
Write impl response writer
func (*LogResponseWriter) WriteHeader ¶
func (lw *LogResponseWriter) WriteHeader(statusCode int)
WriteHeader impl response writer
type MgoConfig ¶
type MgoConfig struct {
Addrs []string `json:"addrs"`
Username string `json:"user"`
Password string `json:"pass"`
DB string `json:"db"`
Coll string `json:"coll"`
TimeoutMs int `json:"timeoutMs"`
}
MgoConfig is copyed
type ReqLogDB ¶
type ReqLogDB struct {
Coll mgo.Collection
Session *mgo.Session
}
ReqLogDB to mongodb
func (*ReqLogDB) FindDuration ¶
func (db *ReqLogDB) FindDuration(start, end time.Time) ([]RequestInfo, error)
FindDuration find logs from start to end
func (*ReqLogDB) InsertOne ¶
func (db *ReqLogDB) InsertOne(ri *RequestInfo) error
InsertOne insert one log
type RequestInfo ¶
type RequestInfo struct {
Id string `json:"_" bson:"_id"` // mongodb id
Name string `json:"name" bson:"name"` // log name
Method string `json:"method" bson:"method"` // request method, get, post, put, head etc.
Path string `json:"path" bson:"path"` // url.Path
ClientIP string `json:"clientIP" bson:"clientIP"` // client ip
Time time.Time `json:"time" bson:"time"` // when does the request fired
}
RequestInfo retrieves all info in http.Request
func RequestToInfo ¶
func RequestToInfo(req *http.Request, t time.Time) RequestInfo
RequestToInfo makes info from request
type RequestLogger ¶
HTTPLogger holds api server's url
func NewRequestLogger ¶
func NewRequestLogger(post, get string) *RequestLogger
NewRequestLogger gives a new instance
func (*RequestLogger) GetStat ¶
func (hl *RequestLogger) GetStat(start, end time.Time) (*RequestLoggerStat, error)
GetStat get log stat from start to end
type RequestLoggerStat ¶
type RequestLoggerStat struct {
ErrInfo
MethodCount map[string]int64 `json:"methodCount"`
PathCount map[string]int64 `json:"pathCount"`
ClientIPCount map[string]int64 `json:"clientIPCount"`
}
RequestLoggerStat holds logs from start to end
type ServeRequestLogger ¶
ServeRequestLogger is server side object of request logger
func NewServeRequestLogger ¶
func NewServeRequestLogger(conf MgoConfig) *ServeRequestLogger
NewServeRequestLogger create instance of server side logger
func (*ServeRequestLogger) GetStat ¶
func (s *ServeRequestLogger) GetStat(start, end time.Time) (*RequestLoggerStat, error)
GetStat get data from mongodb and give back ip info
func (*ServeRequestLogger) OneRequest ¶
func (s *ServeRequestLogger) OneRequest(r *RequestInfo) error
OneRequest handle one request record it into mongodb