Wiki-Quellcode von Log Application Macros
Zuletzt geändert von Marcel Endberg am 29 April 2026, 12:14
Zeige letzte Bearbeiter
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{velocity output="false"}} | ||
| 2 | #set($logDefaultDoc = $xwiki.getDocument("Log.WebHome")) | ||
| 3 | #set($logClassname = "Log.LogEntryClass") | ||
| 4 | ## | ||
| 5 | ## Creates an log entry | ||
| 6 | ## | ||
| 7 | #macro(log $message $level $containerdoc) | ||
| 8 | #if("$!containerdoc" != "") | ||
| 9 | #set($logDoc = $xwiki.getDocument("$containerdoc")) | ||
| 10 | #if($logDoc.isNew()) | ||
| 11 | #set($void = $logDoc.setContent("{{include document=${escapetool.q}Log.LogSheet${escapetool.q}/}}")) | ||
| 12 | #end | ||
| 13 | #else | ||
| 14 | #set($logDoc = $logDefaultDoc) | ||
| 15 | #end | ||
| 16 | #set($logObj = $logDoc.newObject($logClassname)) | ||
| 17 | #set($void = $logObj.set("message", $message)) | ||
| 18 | #set($void = $logObj.set("timestamp", $datetool.date)) | ||
| 19 | #set($void = $logObj.set("contextUser", $context.user)) | ||
| 20 | #set($void = $logObj.set("contextDoc", $doc.fullName)) | ||
| 21 | #set($void = $logObj.set("contextAction", $context.action)) | ||
| 22 | #set($requestParams = "") | ||
| 23 | #set($paramNames = $request.parameterNames) | ||
| 24 | #foreach($paramName in $paramNames) | ||
| 25 | #if($velocityCount > 1) #set($requestParams = "${requestParams}, ") #end | ||
| 26 | #set($paramValues = $request.getParameterValues("$paramName")) | ||
| 27 | #set($paramValue = "") | ||
| 28 | #foreach($value in $paramValues) | ||
| 29 | #if($velocityCount > 1) #set($paramValue = "$!{paramValue}, ") #end | ||
| 30 | #set($paramValue = "$!{paramValue}${value}") | ||
| 31 | #end | ||
| 32 | #set($paramValue = "[${paramValue}]") | ||
| 33 | #set($requestParams = "${requestParams}${paramName}:${paramValue}") | ||
| 34 | #end | ||
| 35 | #if("$!requestParams" == "") | ||
| 36 | #set($requestParams = "[:]") | ||
| 37 | #else | ||
| 38 | #set($requestParams = "[${requestParams}]") | ||
| 39 | #end | ||
| 40 | #set($void = $logObj.set("requestParams", "$requestParams")) | ||
| 41 | #if("$!level" != "") | ||
| 42 | #if($level == "INFO") | ||
| 43 | #set($void = $logObj.set("level", "0")) | ||
| 44 | #elseif($level == "WARN") | ||
| 45 | #set($void = $logObj.set("level", "1")) | ||
| 46 | #elseif($level == "ERROR") | ||
| 47 | #set($void = $logObj.set("level", "2")) | ||
| 48 | #else | ||
| 49 | #set($void = $logObj.set("level", "$level")) | ||
| 50 | #end | ||
| 51 | #else | ||
| 52 | #set($void = $logObj.set("level", "0")) | ||
| 53 | #end | ||
| 54 | #set($ok = $logDoc.saveAsAuthor()) | ||
| 55 | #end | ||
| 56 | ## | ||
| 57 | #macro(loginfo $message $containerdoc) | ||
| 58 | #log($message "0" $containerdoc) | ||
| 59 | #end | ||
| 60 | ## | ||
| 61 | #macro(logwarn $message $containerdoc) | ||
| 62 | #log($message "1" $containerdoc) | ||
| 63 | #end | ||
| 64 | ## | ||
| 65 | #macro(logerror $message $containerdoc) | ||
| 66 | #log($message "2" $containerdoc) | ||
| 67 | #end | ||
| 68 | ## | ||
| 69 | ## Removes all log entries | ||
| 70 | ## | ||
| 71 | #macro(clearlogs $containerdoc) | ||
| 72 | #if("$!containerdoc" != "") | ||
| 73 | #set($logDoc = $xwiki.getDocument("$containerdoc")) | ||
| 74 | #else | ||
| 75 | #set($logDoc = $logDefaultDoc) | ||
| 76 | #end | ||
| 77 | $logDoc.removeObjects($logClassname) | ||
| 78 | $logDoc.saveAsAuthor() | ||
| 79 | #end | ||
| 80 | {{/velocity}} | ||
| 81 | {{groovy}} | ||
| 82 | def logDefaultDoc = "Log.WebHome"; | ||
| 83 | def logClassname = "Log.LogEntryClass"; | ||
| 84 | def log(message, level, containerdoc) { | ||
| 85 | def logDoc = xwiki.getDocument(containerdoc); | ||
| 86 | if(logDoc.isNew()) { | ||
| 87 | logDoc.setContent("{{include document=\"Log.LogSheet\"/}}") | ||
| 88 | } | ||
| 89 | def logObj = logDoc.newObject("Log.LogEntryClass"); | ||
| 90 | logObj.set("message", message); | ||
| 91 | logObj.set("timestamp", new Date()); | ||
| 92 | logObj.set("level", level); | ||
| 93 | logObj.set("contextUser", xcontext.getUser()); | ||
| 94 | logObj.set("contextDoc", doc.getFullName()); | ||
| 95 | logObj.set("contextAction", xcontext.getAction()) | ||
| 96 | logObj.set("requestParams", request.parameterMap.toString()); | ||
| 97 | logDoc.saveAsAuthor(); | ||
| 98 | } | ||
| 99 | def log(message) { | ||
| 100 | log(message, "0", "Log.WebHome") | ||
| 101 | } | ||
| 102 | def loginfo(message) { | ||
| 103 | log(message, "0", "Log.WebHome") | ||
| 104 | } | ||
| 105 | def logwarn(message) { | ||
| 106 | log(message, "1", "Log.WebHome") | ||
| 107 | } | ||
| 108 | def logerror(message) { | ||
| 109 | log(message, "2", "Log.WebHome") | ||
| 110 | } | ||
| 111 | def loginfo(message, containerdoc) { | ||
| 112 | log(message, "0", containerdoc) | ||
| 113 | } | ||
| 114 | def logwarn(message, containerdoc) { | ||
| 115 | log(message, "1", containerdoc) | ||
| 116 | } | ||
| 117 | def logerror(message, containerdoc) { | ||
| 118 | log(message, "2", containerdoc) | ||
| 119 | } | ||
| 120 | def clearlogs(containerdoc) { | ||
| 121 | def logDoc; | ||
| 122 | if(containerdoc != "") { | ||
| 123 | logDoc = $xwiki.getDocument("$containerdoc") | ||
| 124 | } else { | ||
| 125 | logDoc = "Log.WebHome" | ||
| 126 | } | ||
| 127 | logDoc.removeObjects("Log.LogEntryClass") | ||
| 128 | logDoc.saveAsAuthor() | ||
| 129 | } | ||
| 130 | {{/groovy}} |