4f0d95fa6e
Signed-off-by: Daniel Nephin <dnephin@docker.com>
107 lines
1.8 KiB
Go
107 lines
1.8 KiB
Go
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)
|
|
}
|