You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2023/06/02 05:15:00 UTC

[sling-org-apache-sling-engine] branch issues/SLING-11898 updated: SLING-11898 : Make patterns for access and request log configurable

This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch issues/SLING-11898
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-engine.git


The following commit(s) were added to refs/heads/issues/SLING-11898 by this push:
     new f61f0ce  SLING-11898 : Make patterns for access and request log configurable
f61f0ce is described below

commit f61f0ce7c17f6065cb01cdc0276c0e34f9854755
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Fri Jun 2 07:14:55 2023 +0200

    SLING-11898 : Make patterns for access and request log configurable
---
 .../sling/engine/impl/log/RequestLogger.java       | 35 +++++++++++++++-------
 1 file changed, 25 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/apache/sling/engine/impl/log/RequestLogger.java b/src/main/java/org/apache/sling/engine/impl/log/RequestLogger.java
index edd2178..dd8f8be 100644
--- a/src/main/java/org/apache/sling/engine/impl/log/RequestLogger.java
+++ b/src/main/java/org/apache/sling/engine/impl/log/RequestLogger.java
@@ -52,9 +52,7 @@ public class RequestLogger {
                      "The request log logs the entry and exit of each request into and "+
                      "out of the system together with the entry time, exit time, time to process "+
                      "the request, a request counter as well as the final status code and response "+
-                     "content type. In terms of Request Logger Service formats, request entry is "+
-                     "logged with the format \"%t [%R] -> %m %U%q %H\" and request exit is logged "+
-                     "with the format \"%{end}t [%R] <- %s %{Content-Type}o %Dms\".")
+                     "content type. The format can be configured with the Request Log Entry/Exit Format setting.")
         String request_log_output() default "logs/request.log";
 
         @AttributeDefinition(name = "Request Log Type",
@@ -71,16 +69,26 @@ public class RequestLogger {
         })
         int request_log_outputtype() default 0;
 
+        @AttributeDefinition(name = "Request Log Entry Format",
+            description = "The format of the request log. The request entry is "+
+                "logged with the format \"%t [%R] -> %m %U%q %H\" by default."
+        )
+        String request_log_entry_format() default REQUEST_LOG_ENTRY_FORMAT;
+
+        @AttributeDefinition(name = "Request Log Exit Format",
+            description = "The format of the request log. The request exit is logged "+
+                "with the format \"%{end}t [%R] <- %s %{Content-Type}o %Dms\" by default."
+        )
+        String request_log_exit_format() default REQUEST_LOG_EXIT_FORMAT;
+
         @AttributeDefinition(name = "Enable Request Log",
                 description = "Whether to enable Request logging or not.")
         boolean request_log_enabled() default true;
 
         @AttributeDefinition(name = "Access Log Name",
                 description = "Name of the destination for the request log. "+
-                     "The access log writes an entry for each request as the request terminates "+
-                     "using the NCSA extended/combined log format. In terms of Request Logger "+
-                     "Service formats the access log is written with the format "+
-                     "\"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"\".")
+                     "The access log writes an entry for each request as the request terminates. "+
+                     "The format of the access log can be configured by the Access Log Format setting.")
         String access_log_output() default "logs/access.log";
 
         @AttributeDefinition(name = "Access Log Type",
@@ -97,6 +105,13 @@ public class RequestLogger {
         })
         int access_log_outputtype() default 0;
 
+        @AttributeDefinition(name = "Access Log Format",
+            description = "The default format for the access log is using the NCSA extended/combined log "+
+                "format. In terms of Request Logger Service formats the access log is written with the format "+
+                "\"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"\"."
+        )
+        String access_log_format() default ACCESS_LOG_FORMAT;
+
         @AttributeDefinition(name = "Enable Access Log",
                 description = "Whether to enable Access logging or not.")
         boolean access_log_enabled() default true;
@@ -135,14 +150,14 @@ public class RequestLogger {
         // prepare the request loggers if a name is configured and the
         // request loggers are enabled
         if (config.request_log_output() != null && config.request_log_enabled()) {
-            createRequestLoggerService(services, bundleContext, true, REQUEST_LOG_ENTRY_FORMAT, config.request_log_output(), config.request_log_outputtype());
-            createRequestLoggerService(services, bundleContext, false, REQUEST_LOG_EXIT_FORMAT, config.request_log_output(), config.request_log_outputtype());
+            createRequestLoggerService(services, bundleContext, true, config.request_log_entry_format(), config.request_log_output(), config.request_log_outputtype());
+            createRequestLoggerService(services, bundleContext, false, config.request_log_exit_format(), config.request_log_output(), config.request_log_outputtype());
         }
 
         // prepare the access logger if a name is configured and the
         // access logger is enabled
         if (config.access_log_output() != null && config.access_log_enabled()) {
-            createRequestLoggerService(services, bundleContext, false, ACCESS_LOG_FORMAT, config.access_log_output(), config.access_log_outputtype());
+            createRequestLoggerService(services, bundleContext, false, config.access_log_format(), config.access_log_output(), config.access_log_outputtype());
         }
     }