diff --git a/defaults/main.yml b/defaults/main.yml
index 4f5ccfe..b4af0b2 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -15,6 +15,10 @@ keycloak_log_directory: '/var/log/keycloak'
 keycloak_service_name: keycloak
 keycloak_optimize_build_at_startup: true
 keycloak_upgrade_db_at_startup: false
+keycloak_configuration_files:
+  - keycloak.conf
+  - cache-ispn.xml
+  - quarkus.properties
 keycloak_disabled_features: []
 keycloak_preview_features: []
 keycloak_remote_providers: []
@@ -41,12 +45,16 @@ keycloak_https_port: 8443
 keycloak_set_hostname: false
 keycloak_hostname: '{{ ansible_fqdn }}'
 
+# console, file, gelf
 keycloak_log_handlers: console
 keycloak_log_console_format: '%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n'
 keycloak_log_console_output: default
 keycloak_log_file: '{{ keycloak_log_directory }}/keycloak.log'
 keycloak_log_file_format: '%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n'
 keycloak_log_level: warning
+keycloak_log_backup_index: 10
+keycloak_log_max_size: '10M'
+keycloak_log_rotate_on_boot: 'true'
 # We keep those together because some health checks are available only when the metrics are enabled.
 keycloak_metrics_and_health_checks_enabled: 'true'
 
diff --git a/tasks/keycloak-configuration.yml b/tasks/keycloak-configuration.yml
index 1faeb97..e6b3e8c 100644
--- a/tasks/keycloak-configuration.yml
+++ b/tasks/keycloak-configuration.yml
@@ -7,9 +7,7 @@
       dest: '{{ keycloak_conf_directory }}/{{ item }}'
       owner: root
       group: root
-    loop:
-      - keycloak.conf
-      - cache-ispn.xml
+    loop: '{{ keycloak_configuration_files }}'
     notify: Restart Keycloak
 
   tags: [ 'keycloak', 'keycloak_db', 'keycloak_conf' ]
diff --git a/templates/quarkus.properties.j2 b/templates/quarkus.properties.j2
new file mode 100644
index 0000000..a06229b
--- /dev/null
+++ b/templates/quarkus.properties.j2
@@ -0,0 +1,15 @@
+quarkus.log.file.rotation.max-file-size={{ keycloak_log_max_size }}
+quarkus.log.file.rotation.max-backup-index={{ keycloak_log_backup_index }}
+quarkus.log.file.rotation.file-suffix=.yyyy-MM-dd
+quarkus.log.file.rotation.rotate-on-boot={{ keycloak_log_rotate_on_boot }}
+# Access log
+quarkus.http.access-log.enabled=true
+quarkus.http.access-log.log-to-file=true
+quarkus.http.access-log.base-file-name=access.
+quarkus.http.access-log.log-suffix=log
+quarkus.http.access-log.log-directory={{ keycloak_log_directory }}/log
+quarkus.http.access-log.rotate=true
+quarkus.http.access-log.rotation.max-file-size={{ keycloak_log_max_size }}
+quarkus.http.access-log.rotation.max-backup-index={{ keycloak_log_backup_index }}
+quarkus.http.access-log.pattern=%t [%{i,X-Forwarded-For}, %h] %l (user:%u) - '%r' => %s (%b bytes) '%{i,User-Agent}' (Referer: '%{i,Referer}') - [%I, %Dms]
+quarkus.http.record-request-start-time=true