1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.logging;
35
36 import java.util.ArrayList;
37 import java.util.Iterator;
38 import java.util.List;
39
40 import info.magnolia.objectfactory.Components;
41 import org.apache.commons.lang.StringUtils;
42 import org.slf4j.Logger;
43 import org.slf4j.LoggerFactory;
44
45
46
47
48
49
50 public class AuditLoggingManager {
51
52 private List logConfigurations = new ArrayList();
53
54 private String defaultSeparator = ", ";
55
56 private static Logger applog = LoggerFactory.getLogger(AuditLoggingManager.class);
57
58 public AuditLoggingManager() {
59
60 }
61
62 public static AuditLoggingManager getInstance() {
63 try {
64 return Components.getSingleton(AuditLoggingManager.class);
65 } catch (Exception e) {
66
67 applog.info("Class AuditLoggingManager not defined");
68 return null;
69 }
70 }
71
72 public void addLogConfigurations(LogConfiguration action) {
73 this.logConfigurations.add(action);
74 }
75
76 public List getLogConfigurations() {
77 return logConfigurations;
78 }
79
80 public void setLogConfigurations(List logConfigurations) {
81 this.logConfigurations = logConfigurations;
82 }
83
84 public LogConfiguration getLogConfiguration(String action) {
85 Iterator iterator = this.logConfigurations.iterator();
86 while (iterator.hasNext()) {
87 final LogConfiguration trail = (LogConfiguration)iterator.next();
88 if(StringUtils.equals(trail.getName(), action) ) {
89 return trail;
90 }
91 }
92 return null;
93 }
94
95 public void log(String action, String[] data) {
96 String message = "";
97 try {
98 LogConfiguration trail = this.getLogConfiguration(action);
99 String separator = defaultSeparator;
100 if(!StringUtils.isEmpty(trail.getSeparator())) {
101 separator = trail.getSeparator();
102 }
103 message += separator + action;
104 if (trail != null && trail.isActive()) {
105 for (int i = 0; i < data.length; i++) {
106 if (StringUtils.isNotEmpty(data[i])) {
107 message += separator + data[i];
108 }
109
110 }
111
112 org.apache.log4j.Logger.getLogger(trail.getLogName()).log(
113 LoggingLevel.AUDIT_TRAIL, message);
114 }
115
116 } catch (Exception e) {
117 applog.trace("Can't get log configuration");
118 }
119 }
120
121 public String getDefaultSeparator() {
122 return defaultSeparator;
123 }
124
125 public void setDefaultSeparator(String defaultSeparator) {
126 this.defaultSeparator = defaultSeparator;
127 }
128
129 }