Author: jleroux
Date: Thu Oct  5 02:06:02 2006
New Revision: 453151

URL: http://svn.apache.org/viewvc?view=rev&rev=453151
Log:
A patch from Peter Goron : Migrate webtools debug level screens to widget and 
add dynamic configuration of log4j loggers 
(https://issues.apache.org/jira/browse/OFBIZ-361)

I did not have a lot of time to test this patch (after a quick review I only 
switched some interactiv debug levels). It seems well done and very interesting.

Thanks Peter.

Modified:
    incubator/ofbiz/trunk/framework/common/servicedef/services.xml
    
incubator/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
    incubator/ofbiz/trunk/framework/webtools/config/WebtoolsUiLabels.properties
    
incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
    incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/regions.xml
    incubator/ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl

Modified: incubator/ofbiz/trunk/framework/common/servicedef/services.xml
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/common/servicedef/services.xml?view=diff&rev=453151&r1=453150&r2=453151
==============================================================================
--- incubator/ofbiz/trunk/framework/common/servicedef/services.xml (original)
+++ incubator/ofbiz/trunk/framework/common/servicedef/services.xml Thu Oct  5 
02:06:02 2006
@@ -48,16 +48,23 @@
         <attribute name="noteId" type="String" mode="OUT"/>
     </service>
 
-    <service name="updateDebugLevel" engine="java"
-            location="org.ofbiz.common.CommonServices" invoke="setDebugLevels">
+    <service name="adjustDebugingLevels" engine="java"
+             location="org.ofbiz.common.CommonServices" 
invoke="adjustDebugingLevels" auth="true">
         <description>Sets/Updates cached debugging levels</description>
-        <attribute name="verbose" type="Boolean" mode="IN" optional="true"/>
-        <attribute name="timing" type="Boolean" mode="IN" optional="true"/>
-        <attribute name="info" type="Boolean" mode="IN" optional="true"/>
-        <attribute name="important" type="Boolean" mode="IN" optional="true"/>
-        <attribute name="warning" type="Boolean" mode="IN" optional="true"/>
-        <attribute name="error" type="Boolean" mode="IN" optional="true"/>
-        <attribute name="fatal" type="Boolean" mode="IN" optional="true"/>
+        <attribute name="fatal" type="String" mode="IN" optional="true"/>
+        <attribute name="error" type="String" mode="IN" optional="true"/>
+        <attribute name="warning" type="String" mode="IN" optional="true"/>
+        <attribute name="important" type="String" mode="IN" optional="true"/>
+        <attribute name="info" type="String" mode="IN" optional="true"/>
+        <attribute name="timing" type="String" mode="IN" optional="true"/>
+        <attribute name="verbose" type="String" mode="IN" optional="true"/>
+    </service>
+    <service name="addOrUpdateLogger" engine="java"
+             location="org.ofbiz.common.CommonServices" 
invoke="addOrUpdateLogger" auth="true">
+        <description>Add/Update logger in logging system</description>
+        <attribute name="name" type="String" mode="IN" optional="false"/>
+        <attribute name="level" type="String" mode="IN" optional="false"/>
+        <attribute name="additivity" type="String" mode="IN" optional="true"/>
     </service>
 
     <service name="displayXaDebugInfo" engine="java"

Modified: 
incubator/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java?view=diff&rev=453151&r1=453150&r2=453151
==============================================================================
--- 
incubator/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java 
(original)
+++ 
incubator/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonServices.java 
Thu Oct  5 02:06:02 2006
@@ -30,6 +30,8 @@
 import javax.mail.internet.MimeMessage;
 import javax.transaction.xa.XAException;
 
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilDateTime;
 import org.ofbiz.base.util.UtilMisc;
@@ -172,45 +174,33 @@
      [EMAIL PROTECTED] context Map containing the input parameters
      [EMAIL PROTECTED] Map with the result of the service, the output 
parameters
      */
-    public static Map setDebugLevels(DispatchContext dctx, Map context) {
-        Boolean verbose = (Boolean) context.get("verbose");
-        Boolean timing = (Boolean) context.get("timing");
-        Boolean info = (Boolean) context.get("info");
-        Boolean important = (Boolean) context.get("important");
-        Boolean warning = (Boolean) context.get("warning");
-        Boolean error = (Boolean) context.get("error");
-        Boolean fatal = (Boolean) context.get("fatal");
-
-        if (verbose != null)
-            Debug.set(Debug.VERBOSE, verbose.booleanValue());
-        else
-            Debug.set(Debug.VERBOSE, false);
-        if (timing != null)
-            Debug.set(Debug.TIMING, timing.booleanValue());
-        else
-            Debug.set(Debug.TIMING, false);
-        if (info != null)
-            Debug.set(Debug.INFO, info.booleanValue());
-        else
-            Debug.set(Debug.INFO, false);
-        if (important != null)
-            Debug.set(Debug.IMPORTANT, important.booleanValue());
-        else
-            Debug.set(Debug.IMPORTANT, false);
-        if (warning != null)
-            Debug.set(Debug.WARNING, warning.booleanValue());
-        else
-            Debug.set(Debug.WARNING, false);
-        if (error != null)
-            Debug.set(Debug.ERROR, error.booleanValue());
-        else
-            Debug.set(Debug.ERROR, false);
-        if (fatal != null)
-            Debug.set(Debug.FATAL, fatal.booleanValue());
-        else
-            Debug.set(Debug.FATAL, false);
-
-        return ServiceUtil.returnSuccess();
+    public static Map adjustDebugingLevels(DispatchContext dctc, Map context) {
+       Debug.set(Debug.FATAL, "Y".equalsIgnoreCase((String) 
context.get("fatal")));
+       Debug.set(Debug.ERROR, "Y".equalsIgnoreCase((String) 
context.get("error")));
+       Debug.set(Debug.WARNING, "Y".equalsIgnoreCase((String) 
context.get("warning")));
+       Debug.set(Debug.IMPORTANT, "Y".equalsIgnoreCase((String) 
context.get("important")));
+       Debug.set(Debug.INFO, "Y".equalsIgnoreCase((String) 
context.get("info")));
+       Debug.set(Debug.TIMING, "Y".equalsIgnoreCase((String) 
context.get("timing")));
+       Debug.set(Debug.VERBOSE, "Y".equalsIgnoreCase((String) 
context.get("verbose")));
+       
+       return ServiceUtil.returnSuccess();
+    }
+
+    public static Map addOrUpdateLogger(DispatchContext dctc, Map context) {
+       String name = (String) context.get("name");
+       String level = (String) context.get("level");
+       boolean additivity = "Y".equalsIgnoreCase((String) 
context.get("additivity"));
+       
+       Logger logger = null;
+       if ("root".equals(name)) {
+           logger = Logger.getRootLogger();
+       } else {
+           logger = Logger.getLogger(name);
+       }
+       logger.setLevel(Level.toLevel(level));
+       logger.setAdditivity(additivity);
+       
+       return ServiceUtil.returnSuccess();
     }
 
     public static Map forceGc(DispatchContext dctx, Map context) {
@@ -473,4 +463,5 @@
         }
     }
 }
+
 

Modified: 
incubator/ofbiz/trunk/framework/webtools/config/WebtoolsUiLabels.properties
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/webtools/config/WebtoolsUiLabels.properties?view=diff&rev=453151&r1=453150&r2=453151
==============================================================================
--- incubator/ofbiz/trunk/framework/webtools/config/WebtoolsUiLabels.properties 
(original)
+++ incubator/ofbiz/trunk/framework/webtools/config/WebtoolsUiLabels.properties 
Thu Oct  5 02:06:02 2006
@@ -26,18 +26,33 @@
 PageTitleEntityImportDir=XML Data Import Dir 
 PageTitleEntitySyncStatus=Entity Sync Status
 PageTitleEntitySQLProcessor=Entity SQL Processor
+PageTitleLogConfiguration=Debugging Levels
 
 WebtoolsAbsolutePath=Absolute directory path
+WebtoolsAddLoggerFormDescription=This form allows you to enable a logger for a 
specific package or class.
 WebtoolsCreateDummyFks=Create "Dummy" FKs
+WebtoolsDebuggingLevelFormDescription=This form allows you to change 
application debugging levels.
 WebtoolsDeleteFiles=Delete Files Afterwards?
 WebtoolsEntityDataMaintenance=Entity Data Maintenance
+WebtoolsErrorLogLevel=Error
+WebtoolsErrorLogLevelTooltip=The Error level designates error events that 
might still allow the application to continue running.
 WebtoolsExport=Export
 WebtoolsExportFromDataSource=XML Export from DataSource(s)
+WebtoolsFatalLogLevel=Fatal
+WebtoolsFatalLogLevelTooltip=The Fatal level designates very severe error 
events that will presumably lead the application to abort.
 WebtoolsImport=Import
+WebtoolsImportantLogLevel=Important
+WebtoolsImportantLogLevelTooltip=The Important level designates informational 
messages that highlight the progress of the application at coarse-grained level.
 WebtoolsImportFile=Import File
 WebtoolsImportText=Import Text
 WebtoolsImportToDataSource=XML Import to DataSource(s)
+WebtoolsInfoLogLevel=Info
+WebtoolsInfoLogLevelTooltip=The Info level designates informational messages 
that highlight the progress of the application at coarse-grained level.
 WebtoolsIsURL=Is URL?
+WebtoolsLoggerAdditivity=Additivity
+WebtoolsLoggerLevel=Level
+WebtoolsLoggerListFormDescription=This form show all enabled loggers.
+WebtoolsLoggerName=Name
 WebtoolsMainPage=WebTools Main Page
 WebtoolsMaintainTimestamps=Maintain Timestamps?
 WebtoolsMessage1=This page can be used to export data from the database 
@@ -52,3 +67,9 @@
 WebtoolsPause=Pause (secs) between files
 WebtoolsResults=Results
 WebtoolsTimeoutSeconds=TX Timeout Seconds (for each entity)
+WebtoolsTimingLogLevel=Timing
+WebtoolsTimingLogLevelTooltip=The Timing Level designates fine-grained 
informational events that are most useful to debug an application.
+WebtoolsVerboseLogLevel=Verbose
+WebtoolsVerboseLogLevelTooltip=The Verbose Level designates fine-grained 
informational events that are most useful to debug an application.
+WebtoolsWarningLogLevel=Warning
+WebtoolsWarningLogLevelTooltip=The Warning level designates potentially 
harmful situations.

Modified: 
incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?view=diff&rev=453151&r1=453150&r2=453151
==============================================================================
--- 
incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml 
(original)
+++ 
incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml 
Thu Oct  5 02:06:02 2006
@@ -24,6 +24,7 @@
     <handler name="java" type="request" 
class="org.ofbiz.webapp.event.JavaEventHandler"/>
     <handler name="soap" type="request" 
class="org.ofbiz.webapp.event.SOAPEventHandler"/>
     <handler name="service" type="request" 
class="org.ofbiz.webapp.event.ServiceEventHandler"/>
+    <handler name="service-multi" type="request" 
class="org.ofbiz.webapp.event.ServiceMultiEventHandler"/>
     <handler name="simple" type="request" 
class="org.ofbiz.webapp.event.SimpleEventHandler"/>
 
     <handler name="jpublish" type="view" 
class="org.ofbiz.webapp.view.JPublishViewHandler"/>
@@ -290,15 +291,24 @@
         <response name="success" type="view" value="StatBinsHistory"/>
     </request-map>
 
-    <request-map uri="debuglevels">
-      <security https="true" auth="true"/>
-      <response name="success" type="view" value="debuglevels"/>
+    <request-map uri="LogConfiguration">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="LogConfiguration"/>
+    </request-map>
+    <request-map uri="AddLogger">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="addOrUpdateLogger"/>
+        <response name="success" type="view" value="LogConfiguration"/>
+    </request-map>
+    <request-map uri="UpdateLogger">
+        <security https="true" auth="true"/>
+        <event type="service-multi" invoke="addOrUpdateLogger"/>
+        <response name="success" type="view" value="LogConfiguration"/>
     </request-map>
-    <request-map uri="updateDebugLevel">
+    <request-map uri="AdjustDebugingLevels">
         <security https="true" auth="true"/>
-        <event type="service" invoke="updateDebugLevel"/>
-        <response name="success" type="view" value="debuglevels"/>
-        <response name="error" type="view" value="debuglevels"/>
+        <event type="service" invoke="adjustDebugingLevels"/>
+        <response name="success" type="view" value="LogConfiguration"/>
     </request-map>
 
     <request-map uri="serviceList">
@@ -518,7 +528,7 @@
     <view-map name="logikus" type="region"/>
     <view-map name="readxpdl" type="region"/>
     <view-map name="workflowMonitor" type="region"/>
-    <view-map name="debuglevels" type="region"/>
+    <view-map name="LogConfiguration" type="screen" 
page="component://webtools/widget/LogScreens.xml#LogConfiguration"/>
 
     <view-map name="StatsSinceStart" type="region"/>
     <view-map name="StatBinsHistory" type="region"/>

Modified: 
incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/regions.xml
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/regions.xml?view=diff&rev=453151&r1=453150&r2=453151
==============================================================================
--- 
incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/regions.xml 
(original)
+++ 
incubator/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/regions.xml 
Thu Oct  5 02:06:02 2006
@@ -123,11 +123,6 @@
         <put section="content" content="/period/EditCustomTimePeriod.jsp"/>
     </define>
 
-    <define id="debuglevels" region="MAIN_REGION">
-        <put section="title">Debugging Levels</put>
-        <put section="content" content="/debug.jsp"/>
-    </define>
-
     <define id="threadList" region="MAIN_REGION">
        <put section="title">Thread List</put>
        <put section="content" content="/service/threads.jsp"/>

Modified: incubator/ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl
URL: 
http://svn.apache.org/viewvc/incubator/ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl?view=diff&rev=453151&r1=453150&r2=453151
==============================================================================
--- incubator/ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl (original)
+++ incubator/ofbiz/trunk/framework/webtools/webapp/webtools/main.ftl Thu Oct  
5 02:06:02 2006
@@ -48,7 +48,7 @@
                 <li><div class="tabletext">Cache &amp; Debug Tools</div>
                 <ul>
                     <li><a href="<@ofbizUrl>/FindUtilCache</@ofbizUrl>" 
class="linktext">Cache Maintenance</a>
-                    <li><a href="<@ofbizUrl>/debuglevels</@ofbizUrl>" 
class="linktext">Adjust Debugging Levels</a>
+                    <li><a href="<@ofbizUrl>/LogConfiguration</@ofbizUrl>" 
class="linktext">Adjust Debugging Levels</a>
                 </ul>
               <#if security.hasPermission("ENTITY_MAINT", session)>
                 <li><div class="tabletext">Entity Engine Tools</div>


Reply via email to