| package logger // import "github.com/docker/docker/daemon/logger" | |
| import ( | |
| "errors" | |
| "io" | |
| ) | |
| type client interface { | |
| Call(string, interface{}, interface{}) error | |
| Stream(string, interface{}) (io.ReadCloser, error) | |
| } | |
| type logPluginProxy struct { | |
| client | |
| } | |
| type logPluginProxyStartLoggingRequest struct { | |
| File string | |
| Info Info | |
| } | |
| type logPluginProxyStartLoggingResponse struct { | |
| Err string | |
| } | |
| func (pp *logPluginProxy) StartLogging(file string, info Info) (err error) { | |
| var ( | |
| req logPluginProxyStartLoggingRequest | |
| ret logPluginProxyStartLoggingResponse | |
| ) | |
| req.File = file | |
| req.Info = info | |
| if err = pp.Call("LogDriver.StartLogging", req, &ret); err != nil { | |
| return | |
| } | |
| if ret.Err != "" { | |
| err = errors.New(ret.Err) | |
| } | |
| return | |
| } | |
| type logPluginProxyStopLoggingRequest struct { | |
| File string | |
| } | |
| type logPluginProxyStopLoggingResponse struct { | |
| Err string | |
| } | |
| func (pp *logPluginProxy) StopLogging(file string) (err error) { | |
| var ( | |
| req logPluginProxyStopLoggingRequest | |
| ret logPluginProxyStopLoggingResponse | |
| ) | |
| req.File = file | |
| if err = pp.Call("LogDriver.StopLogging", req, &ret); err != nil { | |
| return | |
| } | |
| if ret.Err != "" { | |
| err = errors.New(ret.Err) | |
| } | |
| return | |
| } | |
| type logPluginProxyCapabilitiesResponse struct { | |
| Cap Capability | |
| Err string | |
| } | |
| func (pp *logPluginProxy) Capabilities() (cap Capability, err error) { | |
| var ret logPluginProxyCapabilitiesResponse | |
| if err = pp.Call("LogDriver.Capabilities", nil, &ret); err != nil { | |
| return | |
| } | |
| cap = ret.Cap | |
| if ret.Err != "" { | |
| err = errors.New(ret.Err) | |
| } | |
| return | |
| } | |
| type logPluginProxyReadLogsRequest struct { | |
| Info Info | |
| Config ReadConfig | |
| } | |
| func (pp *logPluginProxy) ReadLogs(info Info, config ReadConfig) (stream io.ReadCloser, err error) { | |
| var req logPluginProxyReadLogsRequest | |
| req.Info = info | |
| req.Config = config | |
| return pp.Stream("LogDriver.ReadLogs", req) | |
| } |