package com.github.dockerjava.core.command; import static com.google.common.base.Preconditions.checkNotNull; import org.apache.commons.lang.builder.ReflectionToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import com.github.dockerjava.api.command.LogContainerCmd; import com.github.dockerjava.api.model.Frame; /** * Get container logs * * @param followStream * - true or false, return stream. Defaults to false. * @param stdout * - true or false, includes stdout log. Defaults to false. * @param stderr * - true or false, includes stderr log. Defaults to false. * @param timestamps * - true or false, if true, print timestamps for every log line. Defaults to false. * @param tail * - `all` or `<number>`, Output specified number of lines at the end of logs * @param since * - UNIX timestamp (integer) to filter logs. Specifying a timestamp will only output log-entries since that timestamp. Default: * 0 (unfiltered) */ public class LogContainerCmdImpl extends AbstrAsyncDockerCmd<LogContainerCmd, Frame> implements LogContainerCmd { private String containerId; private Boolean followStream, timestamps, stdout, stderr; private Integer tail, since; public LogContainerCmdImpl(LogContainerCmd.Exec exec, String containerId) { super(exec); withContainerId(containerId); } @Override public String getContainerId() { return containerId; } @Override public Integer getTail() { return tail; } @Override public Boolean hasFollowStreamEnabled() { return followStream; } @Override public Boolean hasTimestampsEnabled() { return timestamps; } @Override public Boolean hasStdoutEnabled() { return stdout; } @Override public Boolean hasStderrEnabled() { return stderr; } @Override public Integer getSince() { return since; } @Override public LogContainerCmd withContainerId(String containerId) { checkNotNull(containerId, "containerId was not specified"); this.containerId = containerId; return this; } @Override public LogContainerCmd withFollowStream(Boolean followStream) { this.followStream = followStream; return this; } @Override public LogContainerCmd withTimestamps(Boolean timestamps) { this.timestamps = timestamps; return this; } @Override public LogContainerCmd withStdOut(Boolean stdout) { this.stdout = stdout; return this; } @Override public LogContainerCmd withStdErr(Boolean stderr) { this.stderr = stderr; return this; } @Override public LogContainerCmd withTailAll() { this.tail = -1; return this; } @Override public LogContainerCmd withTail(Integer tail) { this.tail = tail; return this; } @Override public LogContainerCmd withSince(Integer since) { this.since = since; return this; } @Override public String toString() { return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE); } }