From e3c2f4ad1349120a1f9e70cb4489ddcb25f33533 Mon Sep 17 00:00:00 2001
From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com>
Date: Wed, 26 Nov 2025 08:15:22 +0100
Subject: [PATCH 1/2] Updated log rotating (#1160)
* Gzipped files on rotating and do not delete files after 30 days
* Updated solr logs - gzip, configured postgres logs to gzip after 1 day
* Renamed log configuration file and updated comments
---
dspace/config/log4j2-cli.xml | 20 ++--------------
dspace/config/log4j2-handle-plugin.xml | 10 +-------
dspace/config/log4j2.xml | 24 ++++---------------
.../dspace-postgres-pgcrypto/Dockerfile | 6 +++++
.../log.properties.conf | 21 ++++++++++++++++
scripts/log4j2.solr.xml | 4 ++--
6 files changed, 36 insertions(+), 49 deletions(-)
create mode 100644 dspace/src/main/docker/dspace-postgres-pgcrypto/log.properties.conf
diff --git a/dspace/config/log4j2-cli.xml b/dspace/config/log4j2-cli.xml
index 6cac529978fc..1ccfe744de94 100644
--- a/dspace/config/log4j2-cli.xml
+++ b/dspace/config/log4j2-cli.xml
@@ -23,7 +23,7 @@
@@ -34,19 +34,11 @@
yyyy-MM-dd
-
yyyy-MM-dd
-
diff --git a/dspace/config/log4j2-handle-plugin.xml b/dspace/config/log4j2-handle-plugin.xml
index 5f72e05c7303..1f8093c3ee0e 100644
--- a/dspace/config/log4j2-handle-plugin.xml
+++ b/dspace/config/log4j2-handle-plugin.xml
@@ -13,7 +13,7 @@
yyyy-MM-dd
-
diff --git a/dspace/config/log4j2.xml b/dspace/config/log4j2.xml
index 455ed7fe6d89..3273551bc0f6 100644
--- a/dspace/config/log4j2.xml
+++ b/dspace/config/log4j2.xml
@@ -23,7 +23,7 @@
yyyy-MM-dd
-
yyyy-MM-dd
-
diff --git a/dspace/src/main/docker/dspace-postgres-pgcrypto/Dockerfile b/dspace/src/main/docker/dspace-postgres-pgcrypto/Dockerfile
index da0ee26e7f82..856b3be494b6 100644
--- a/dspace/src/main/docker/dspace-postgres-pgcrypto/Dockerfile
+++ b/dspace/src/main/docker/dspace-postgres-pgcrypto/Dockerfile
@@ -19,5 +19,11 @@ ENV POSTGRES_DB=dspace
ENV POSTGRES_USER=dspace
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
+# Create the log directory with the correct permissions
+RUN mkdir -p /var/log/postgresql && chown postgres:postgres /var/log/postgresql
+
+# Copy configuration with log rotation
+COPY log.properties.conf /etc/postgresql/log.properties.conf
+
# Copy over script which will initialize database and install pgcrypto extension
COPY install-pgcrypto.sh /docker-entrypoint-initdb.d/
diff --git a/dspace/src/main/docker/dspace-postgres-pgcrypto/log.properties.conf b/dspace/src/main/docker/dspace-postgres-pgcrypto/log.properties.conf
new file mode 100644
index 000000000000..f2411f054c1c
--- /dev/null
+++ b/dspace/src/main/docker/dspace-postgres-pgcrypto/log.properties.conf
@@ -0,0 +1,21 @@
+# Enable logging collector
+logging_collector = on
+
+# Where logs go (absolute path for Docker)
+log_directory = '/var/log/postgresql'
+
+# Log filename with date pattern for rotation
+log_filename = 'postgresql-%Y-%m-%d.log'
+
+# Rotate once per day
+log_rotation_age = 1d
+
+# No size-based rotation (0 = disabled)
+log_rotation_size = 0
+
+# Truncate old file when rotating with same name
+log_truncate_on_rotation = on
+
+# What to log
+log_line_prefix = '%m [%p] %u@%d '
+log_timezone = 'UTC'
diff --git a/scripts/log4j2.solr.xml b/scripts/log4j2.solr.xml
index 6f0e30e5b5b4..79e8b3f94a23 100644
--- a/scripts/log4j2.solr.xml
+++ b/scripts/log4j2.solr.xml
@@ -31,7 +31,7 @@
+ filePattern="${sys:solr.log.dir}/solr.log.%i.gz" >
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m%notEmpty{ =>%ex{short}}}{10240}%n
@@ -47,7 +47,7 @@
+ filePattern="${sys:solr.log.dir}/solr_slow_requests.log.%i.gz" >
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m%notEmpty{ =>%ex{short}}}{10240}%n
From b8c89d4944eaf29187712152f14bec309ea1e71a Mon Sep 17 00:00:00 2001
From: Paurikova2
Date: Thu, 8 Jan 2026 12:49:49 +0100
Subject: [PATCH 2/2] removed from dockerfile creating of log directly and its
copying
---
.../dspace-postgres-pgcrypto/Dockerfile | 6 ------
.../log.properties.conf | 21 -------------------
2 files changed, 27 deletions(-)
delete mode 100644 dspace/src/main/docker/dspace-postgres-pgcrypto/log.properties.conf
diff --git a/dspace/src/main/docker/dspace-postgres-pgcrypto/Dockerfile b/dspace/src/main/docker/dspace-postgres-pgcrypto/Dockerfile
index 856b3be494b6..da0ee26e7f82 100644
--- a/dspace/src/main/docker/dspace-postgres-pgcrypto/Dockerfile
+++ b/dspace/src/main/docker/dspace-postgres-pgcrypto/Dockerfile
@@ -19,11 +19,5 @@ ENV POSTGRES_DB=dspace
ENV POSTGRES_USER=dspace
ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
-# Create the log directory with the correct permissions
-RUN mkdir -p /var/log/postgresql && chown postgres:postgres /var/log/postgresql
-
-# Copy configuration with log rotation
-COPY log.properties.conf /etc/postgresql/log.properties.conf
-
# Copy over script which will initialize database and install pgcrypto extension
COPY install-pgcrypto.sh /docker-entrypoint-initdb.d/
diff --git a/dspace/src/main/docker/dspace-postgres-pgcrypto/log.properties.conf b/dspace/src/main/docker/dspace-postgres-pgcrypto/log.properties.conf
deleted file mode 100644
index f2411f054c1c..000000000000
--- a/dspace/src/main/docker/dspace-postgres-pgcrypto/log.properties.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-# Enable logging collector
-logging_collector = on
-
-# Where logs go (absolute path for Docker)
-log_directory = '/var/log/postgresql'
-
-# Log filename with date pattern for rotation
-log_filename = 'postgresql-%Y-%m-%d.log'
-
-# Rotate once per day
-log_rotation_age = 1d
-
-# No size-based rotation (0 = disabled)
-log_rotation_size = 0
-
-# Truncate old file when rotating with same name
-log_truncate_on_rotation = on
-
-# What to log
-log_line_prefix = '%m [%p] %u@%d '
-log_timezone = 'UTC'