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

ashishvijaywargiya pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 2075a1bd31 Enable linenumber log4j (#1328)
2075a1bd31 is described below

commit 2075a1bd316eb7ef8343a3a88f08693aa04e7e2a
Author: Ashish Vijaywargiya <[email protected]>
AuthorDate: Thu Jun 4 07:19:23 2026 +0530

    Enable linenumber log4j (#1328)
---
 framework/base/config/log4j2.xml                     | 20 ++++++++++++++++----
 .../main/java/org/apache/ofbiz/base/util/Debug.java  |  6 ++++--
 gradle.properties                                    |  3 +++
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/framework/base/config/log4j2.xml b/framework/base/config/log4j2.xml
index 6ce27b8166..e0a44aeecf 100644
--- a/framework/base/config/log4j2.xml
+++ b/framework/base/config/log4j2.xml
@@ -18,6 +18,18 @@ specific language governing permissions and limitations
 under the License.
 -->
 <Configuration monitorInterval="60" packages="org.apache.ofbiz.base.log4j">
+    <!--
+      Source line numbers in log output are enabled by default.
+      To disable for production, set/uncomment systemProp.ofbiz.env=prod in 
gradle.properties.
+    -->
+    <Properties>
+        <Property name="lineToken_dev">:%line</Property>
+        <Property name="lineToken_prod"></Property>
+        <Property name="includeLocation_dev">true</Property>
+        <Property name="includeLocation_prod">false</Property>
+        <Property name="logPattern">%date{DEFAULT} |%-20.20thread 
|%-30.30logger{1}${lineToken_${sys:ofbiz.env:-dev}}|%level{length=1}| 
%message%n</Property>
+        <Property 
name="includeLocation">${includeLocation_${sys:ofbiz.env:-dev}}</Property>
+    </Properties>
     <OFBizDynamicThresholdFilter key="uri" onMatch="ACCEPT" onMismatch="DENY">
         <KeyValuePair key="/getJs" value="ERROR"/>
         <KeyValuePair key="/control/getJs" value="ERROR"/>
@@ -40,11 +52,11 @@ under the License.
     -->
     <Appenders>
         <Console name="stdout" target="SYSTEM_OUT">
-            <PatternLayout pattern="%date{DEFAULT} |%-20.20thread 
|%-30.30logger{1}|%level{length=1}| %message%n"/>
+            <PatternLayout pattern="${logPattern}"/>
         </Console>
 
         <RollingFile name="ofbiz" fileName="runtime/logs/ofbiz.log" 
filePattern="runtime/logs/ofbiz.log.%i">
-            <PatternLayout pattern="%date{DEFAULT} |%-20.20thread 
|%-30.30logger{1}|%level{length=1}| %message%n"/>
+            <PatternLayout pattern="${logPattern}"/>
             <Policies>
                 <OnStartupTriggeringPolicy/>
                 <SizeBasedTriggeringPolicy size="10 MB"/>
@@ -54,7 +66,7 @@ under the License.
 
         <RollingFile name="error" fileName="runtime/logs/error.log" 
filePattern="runtime/logs/error.log.%i">
             <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
-            <PatternLayout pattern="%date{DEFAULT} |%-20.20thread 
|%-30.30logger{1}|%level{length=1}| %message%n"/>
+            <PatternLayout pattern="${logPattern}"/>
             <Policies>
                 <OnStartupTriggeringPolicy/>
                 <SizeBasedTriggeringPolicy size="10 MB"/>
@@ -62,7 +74,7 @@ under the License.
             <DefaultRolloverStrategy fileIndex="min" max="10"/>
         </RollingFile>
 
-        <Async name="async">
+        <Async name="async" includeLocation="${includeLocation}">
             <AppenderRef ref="ofbiz"/>
             <AppenderRef ref="stdout"/>
             <AppenderRef ref="error"/>
diff --git a/framework/base/src/main/java/org/apache/ofbiz/base/util/Debug.java 
b/framework/base/src/main/java/org/apache/ofbiz/base/util/Debug.java
index f3e1c0dd1e..129047a467 100644
--- a/framework/base/src/main/java/org/apache/ofbiz/base/util/Debug.java
+++ b/framework/base/src/main/java/org/apache/ofbiz/base/util/Debug.java
@@ -27,6 +27,7 @@ import java.util.Properties;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.spi.ExtendedLogger;
 
 /**
  * Configurable Debug logging wrapper class
@@ -115,8 +116,9 @@ public final class Debug {
             }
 
             // log
-            Logger logger = getLogger(module);
-            logger.log(LEVEL_OBJS[level], msg, t);
+            ExtendedLogger logger = (ExtendedLogger) getLogger(module);
+            logger.logMessage(Debug.class.getName(), LEVEL_OBJS[level], null,
+                    logger.getMessageFactory().newMessage(msg != null ? msg : 
""), t);
         }
     }
 
diff --git a/gradle.properties b/gradle.properties
index dbb3a5708b..0b89105a14 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -21,3 +21,6 @@ org.gradle.console=plain
 # If you experience heap memory problems during the Gradle build, for example
 # building with integrated plugins, the following setting might help
 #org.gradle.jvmargs=-Xms128m -Xmx1024m -XX:+CMSClassUnloadingEnabled
+
+# Uncomment to disable source line numbers in log output (e.g. for production).
+#systemProp.ofbiz.env=prod

Reply via email to