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> |
Free forum by Nabble | Edit this page |