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