Allow to disable log file compression
On sites where log file compression is done by an external service such as logrotate [1], administrators may wish to disable Gerrit's default log compression. Add a new setting, log.compress, which disables log compression when set to false. The default is true, for backwards compatibility with current behaviour. [1] http://manpages.ubuntu.com/manpages/zesty/man8/logrotate.8.html Change-Id: I3ceb152ef61e711b2e73d01a05b8f7ceecd395b6
This commit is contained in:
@@ -3349,6 +3349,13 @@ if `jsonLogging` is enabled.
|
||||
+
|
||||
Defaults to true.
|
||||
|
||||
[[log.compress]]log.compress::
|
||||
+
|
||||
If set to true, log files are compressed at server startup and then daily at 11pm
|
||||
(in the server's local time zone).
|
||||
+
|
||||
Defaults to true.
|
||||
|
||||
[[mimetype]]
|
||||
=== Section mimetype
|
||||
|
||||
|
@@ -20,6 +20,7 @@ import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||
import com.google.common.io.ByteStreams;
|
||||
import com.google.gerrit.extensions.events.LifecycleListener;
|
||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||
import com.google.gerrit.server.config.GerritServerConfig;
|
||||
import com.google.gerrit.server.config.SitePaths;
|
||||
import com.google.gerrit.server.git.WorkQueue;
|
||||
import com.google.inject.Inject;
|
||||
@@ -34,6 +35,7 @@ import java.time.ZoneId;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
import org.eclipse.jgit.lib.Config;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -51,15 +53,20 @@ public class LogFileCompressor implements Runnable {
|
||||
static class Lifecycle implements LifecycleListener {
|
||||
private final WorkQueue queue;
|
||||
private final LogFileCompressor compressor;
|
||||
private final boolean enabled;
|
||||
|
||||
@Inject
|
||||
Lifecycle(WorkQueue queue, LogFileCompressor compressor) {
|
||||
Lifecycle(WorkQueue queue, LogFileCompressor compressor, @GerritServerConfig Config config) {
|
||||
this.queue = queue;
|
||||
this.compressor = compressor;
|
||||
this.enabled = config.getBoolean("log", "compress", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
if (!enabled) {
|
||||
return;
|
||||
}
|
||||
//compress log once and then schedule compression every day at 11:00pm
|
||||
queue.getDefaultQueue().execute(compressor);
|
||||
ZoneId zone = ZoneId.systemDefault();
|
||||
|
Reference in New Issue
Block a user