1
2
3
4
5
6
7
8 package net.kwfgrid.gwes;
9
10 import net.kwfgrid.gwes.exception.LoggingException;
11 import org.apache.log4j.Logger;
12 import org.ietf.jgss.GSSException;
13
14 import java.text.SimpleDateFormat;
15 import java.util.Date;
16 import java.io.IOException;
17
18
19
20
21
22 public class GWESBasicLogger extends GWESLogger {
23
24
25
26
27 static final private Logger logger = Logger.getLogger(GWESBasicLogger.class);
28
29 static final private SimpleDateFormat dateAndTime=new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z");
30
31 @Override
32 protected void logEventLevelChecked(Event event, EventOutcome eventOutcome, String userID, Object object, String[] paramNames, String[] oldValues, String[] newValues, Throwable exception)
33 throws LoggingException {
34 StringBuffer buf = new StringBuffer();
35 if (userID!=null) buf.append("userId=\"").append(userID).append("\"");
36 Date date = new Date(System.currentTimeMillis());
37 buf.append(" [").append(dateAndTime.format(date)).append("]");
38 buf.append(" gwesID=\"").append(getGwesId()).append("\"");
39 buf.append(" event=\"").append(event.name()).append("\"");
40 buf.append(" eventOutcome=\"").append(eventOutcome.name()).append("\"");
41 if (object !=null) {
42 if (object instanceof GenericWorkflowHandler) {
43
44 GenericWorkflowHandler handler = (GenericWorkflowHandler) object;
45 buf.append(" handlerID=\"").append(handler.getID()).append("\"");
46 } else if (object instanceof Activity) {
47
48 Activity activity = (Activity) object;
49 buf.append(" activityID=\"").append(activity.getID()).append("\"");
50 buf.append(" operationName=\"").append(activity.getOperationName()).append("\"");
51 buf.append(" resourceName=\"").append(activity.getResourceName()).append("\"");
52 if (activity.getTransitionOccurrence() != null) {
53 buf.append(" transitionOccurrence=\"").append(activity.getTransitionOccurrence()).append("\"");
54 }
55 } else if (object instanceof CredentialManager) {
56
57 CredentialManager credentialManager = (CredentialManager) object;
58 try {
59 buf.append(" DN=\"").append(credentialManager.getDN()).append("\"");
60 buf.append(" remainingLifetime=\"").append(credentialManager.getCredential().getRemainingLifetime()).append("s\"");
61 } catch (GSSException e) {
62 throw new LoggingException("Could not log credential information: " + e, e);
63 } catch (IOException e) {
64 throw new LoggingException("Could not log credential information: " + e, e);
65 }
66 }
67 }
68 if (paramNames!=null) {
69 for (int i=0; i<paramNames.length; i++) {
70 buf.append(" ").append(paramNames[i]).append("=");
71 if (oldValues!=null && i<oldValues.length && oldValues[i]!=null) buf.append("\"").append(oldValues[i]).append("\"").append("->");
72 if (newValues!=null && i<newValues.length && newValues[i]!=null) buf.append("\"").append(newValues[i]).append("\"");
73 }
74 }
75 if (exception != null) {
76 buf.append(" exception=\"").append(exception.getMessage()).append("\"");
77 }
78
79 switch (eventOutcome) {
80 case SUCCESS:
81 logger.info(buf.toString());
82 break;
83 case WARNING:
84 logger.warn(buf.toString());
85 break;
86 case ERROR:
87 logger.error(buf.toString());
88 break;
89 case FATAL:
90 logger.fatal(buf.toString());
91 break;
92 }
93 }
94 }