You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by nm...@apache.org on 2016/08/05 12:05:49 UTC
svn commit: r1755302 - in /ofbiz/trunk/framework:
base/config/debug.properties webtools/groovyScripts/log/FetchLogs.groovy
webtools/groovyScripts/log/LogView.groovy webtools/widget/LogScreens.xml
Author: nmalin
Date: Fri Aug 5 12:05:48 2016
New Revision: 1755302
URL: http://svn.apache.org/viewvc?rev=1755302&view=rev
Log:
Currently we have two methods for display log in OFBiz throught webtools :
* https://localhost:8443/webtools/control/LogView
* https://localhost:8443/webtools/control/FetchLogs
Each method use the same line rendering and the difference is : LogView display only runtime/logs/ofbiz.log (or you can surcharge it vith debug.properties) and FecthLogs list all file name ofbiz* present on runtime/logs/ofbiz.log and offert the possibility to search only line that macth a string.
I review the code to use only one script (remove LogView.groovy) and improve following points :
* Optimise the FetchLog.groovy to display with same velocity a file with or without string chain filtering
* Add a property to change the root log directory. Under linux we use /var/log/ofbiz/
* Add a regExp to match the file name of file present in the directory. Helpful when you want to see error.log
* Complete debug.properties with comment for describe example for new properties
And last point, add refresh button on the end page to reload the log without lost your state on the page.
Related issue OFBIZ-7944
Removed:
ofbiz/trunk/framework/webtools/groovyScripts/log/LogView.groovy
Modified:
ofbiz/trunk/framework/base/config/debug.properties
ofbiz/trunk/framework/webtools/groovyScripts/log/FetchLogs.groovy
ofbiz/trunk/framework/webtools/widget/LogScreens.xml
Modified: ofbiz/trunk/framework/base/config/debug.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/config/debug.properties?rev=1755302&r1=1755301&r2=1755302&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/config/debug.properties (original)
+++ ofbiz/trunk/framework/base/config/debug.properties Fri Aug 5 12:05:48 2016
@@ -29,3 +29,10 @@ print.important=true
print.warning=true
print.error=true
print.fatal=true
+
+## Root log location to display on webtools https://localhost:8443/webtools/control/LogView
+# log4j.appender.css.dir=runtime/logs/
+## File to display on webtools https://localhost:8443/webtools/control/LogView
+# log4j.appender.css.defaultFile=ofbiz.log
+## RegExp use to filter file available on dropdown selection to diplay log on https://localhost:8443/webtools/control/FetchLog
+# log4j.appender.css.fileNameRegExp=[(ofbiz)|(error)].*
\ No newline at end of file
Modified: ofbiz/trunk/framework/webtools/groovyScripts/log/FetchLogs.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/groovyScripts/log/FetchLogs.groovy?rev=1755302&r1=1755301&r2=1755302&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/groovyScripts/log/FetchLogs.groovy (original)
+++ ofbiz/trunk/framework/webtools/groovyScripts/log/FetchLogs.groovy Fri Aug 5 12:05:48 2016
@@ -18,16 +18,24 @@
*/
import org.apache.ofbiz.base.util.FileUtil;
+import org.apache.ofbiz.base.util.UtilProperties;
-ofbizHomeStr = System.getProperty("ofbiz.home");
-ofbizHomeStr = ofbizHomeStr + "/runtime/logs/";
-File runTimeLogDir = FileUtil.getFile(ofbizHomeStr);
-File[] listLogFiles = runTimeLogDir.listFiles();
+String ofbizLogDir = UtilProperties.getPropertyValue("debug", "log4j.appender.css.dir", "runtime/logs/");
+if (!ofbizLogDir.startsWith("/")) {
+ ofbizLogDir = System.getProperty("ofbiz.home") + "/" + ofbizLogDir;
+}
+if (!ofbizLogDir.endsWith("/")) {
+ ofbizLogDir.concat("/");
+}
+
+File runTimeLogDir = FileUtil.getFile(ofbizLogDir);
+File[] listLogFiles = runTimeLogDir.listFiles();
+String ofbizLogRegExp = UtilProperties.getPropertyValue("debug", "log4j.appender.css.fileNameRegExp", "[(ofbiz)|(error)].*");
List listLogFileNames = []
for (int i = 0; i < listLogFiles.length; i++) {
if (listLogFiles[i].isFile()) {
logFileName = listLogFiles[i].getName();
- if (logFileName.startsWith("ofbiz")) {
+ if (logFileName.matches(ofbizLogRegExp)) {
listLogFileNames.add(logFileName);
}
}
@@ -35,27 +43,27 @@ for (int i = 0; i < listLogFiles.length;
context.listLogFileNames = listLogFileNames;
if (parameters.logFileName) {
- logFileName = ofbizHomeStr + parameters.logFileName;
List logLines = [];
- File logFile = FileUtil.getFile(logFileName);
- logFile.eachLine { line ->
- type = '';
- if (line.contains(":INFO ] ")) {
- type = 'INFO';
- } else if (line.contains(":WARN ] ")) {
- type = 'WARN';
- } else if (line.contains(":ERROR] ")) {
- type = 'ERROR';
- } else if (line.contains(":DEBUG] ")) {
- type = 'DEBUG';
- }
- if (parameters.searchString) {
- if (line.contains(parameters.searchString)) {
- logLines.add([type: type, line:line]);
+ try {
+ File logFile = FileUtil.getFile(ofbizLogDir.concat(parameters.logFileName));
+ logFile.eachLine { line ->
+ if (parameters.searchString) {
+ if (!line.contains(parameters.searchString)) {
+ return;
+ }
+ }
+ type = '';
+ if (line.contains(" |I| ")) {
+ type = 'INFO';
+ } else if (line.contains(" |W| ")) {
+ type = 'WARN';
+ } else if (line.contains(" |E| ")) {
+ type = 'ERROR';
+ } else if (line.contains(" |D| ")) {
+ type = 'DEBUG';
}
- } else {
logLines.add([type: type, line:line]);
}
- }
+ } catch (Exception exc) {}
context.logLines = logLines;
-}
\ No newline at end of file
+}
Modified: ofbiz/trunk/framework/webtools/widget/LogScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/LogScreens.xml?rev=1755302&r1=1755301&r2=1755302&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/widget/LogScreens.xml (original)
+++ ofbiz/trunk/framework/webtools/widget/LogScreens.xml Fri Aug 5 12:05:48 2016
@@ -98,10 +98,8 @@ under the License.
<actions>
<set field="titleProperty" value="PageTitleLogView"/>
<set field="tabButtonItem" value="logView"/>
- <!-- TODO: the following command is not really working (and the default value is always used);
- my guess is that the base/config/debug.properties file is not found in the classpath -->
- <property-to-field resource="debug" property="log4j.appender.css.File" field="logFileName" default="runtime/logs/ofbiz.log" no-locale="true"/>
- <script location="component://webtools/groovyScripts/log/LogView.groovy"/>
+ <property-to-field field="parameters.logFileName" resource="debug" property="log4j.appender.css.defaultFile" default="ofbiz.log" no-locale="true"/>
+ <script location="component://webtools/groovyScripts/log/FetchLogs.groovy"/>
</actions>
<widgets>
<decorator-screen name="log-decorator">
@@ -117,6 +115,9 @@ under the License.
<platform-specific>
<html><html-template location="component://webtools/template/log/LogContent.ftl"/></html>
</platform-specific>
+ <container style="button-bar">
+ <link target="javascript: window.location.reload();" text="${uiLabelMap.CommonRefresh}" style="buttontext refresh" url-mode="plain"/>
+ </container>
</screenlet>
</decorator-section>
</decorator-screen>
@@ -138,6 +139,9 @@ under the License.
<platform-specific>
<html><html-template location="component://webtools/template/log/FetchLogs.ftl"/></html>
</platform-specific>
+ <container style="button-bar">
+ <link target="javascript: window.location.reload();" text="${uiLabelMap.CommonRefresh}" style="buttontext refresh" url-mode="plain"/>
+ </container>
</screenlet>
</decorator-section>
</decorator-screen>