1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.sys.context;
20
21 import java.net.URL;
22 import java.net.URLClassLoader;
23
24 import org.apache.log4j.Logger;
25 import org.apache.log4j.PropertyConfigurator;
26 import org.kuali.kfs.sys.KFSConstants;
27
28 public class Log4jConfigurer {
29 private static final long MILLISECONDS_CONVERSION_MULTIPLIER = 60 * 1000;
30
31 public static final void configureLogging(boolean doStartupStatsLogging) {
32 String settingsFile = PropertyLoadingFactoryBean.getBaseProperty(KFSConstants.LOG4J_SETTINGS_FILE_KEY);
33 String reloadMinutes = PropertyLoadingFactoryBean.getBaseProperty(KFSConstants.LOG4J_RELOAD_MINUTES_KEY);
34 long reloadMilliseconds = 5 * MILLISECONDS_CONVERSION_MULTIPLIER;
35 try {
36 reloadMilliseconds = Long.parseLong(reloadMinutes) * MILLISECONDS_CONVERSION_MULTIPLIER;
37 }
38 catch (NumberFormatException ignored) {
39
40 }
41 PropertyConfigurator.configureAndWatch(settingsFile, reloadMilliseconds);
42 printClasspath();
43 }
44
45 private static void printClasspath() {
46 StringBuffer classpath = new StringBuffer("Classpath is:\n");
47 ClassLoader classloader = Thread.currentThread().getContextClassLoader();
48 URL[] urls = ((URLClassLoader) classloader).getURLs();
49 for (int i = 0; i < urls.length; i++) {
50 classpath.append(urls[i].getFile()).append("; ");
51 }
52 Logger.getLogger(Log4jConfigurer.class).info(classpath.toString());
53 }
54 }