CLOUDSTACK-1267: Configure log4j in proper place so that it can be initialized correctly in KVM and system VM environment
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/c235d029 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/c235d029 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/c235d029 Branch: refs/heads/ui-multiple-nics Commit: c235d029ce1ae22f7e7b041bc2b36ac63368f38e Parents: 9f7b822 Author: Kelven Yang <[email protected]> Authored: Mon Mar 11 19:06:12 2013 -0700 Committer: Kelven Yang <[email protected]> Committed: Mon Mar 11 19:13:32 2013 -0700 ---------------------------------------------------------------------- agent/src/com/cloud/agent/AgentShell.java | 15 +++++++++++++++ utils/src/com/cloud/utils/LogUtils.java | 3 +-- 2 files changed, 16 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c235d029/agent/src/com/cloud/agent/AgentShell.java ---------------------------------------------------------------------- diff --git a/agent/src/com/cloud/agent/AgentShell.java b/agent/src/com/cloud/agent/AgentShell.java index 9cb3c3d..2af08e9 100644 --- a/agent/src/com/cloud/agent/AgentShell.java +++ b/agent/src/com/cloud/agent/AgentShell.java @@ -38,10 +38,13 @@ import java.util.UUID; import javax.naming.ConfigurationException; +import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; +import org.apache.log4j.xml.DOMConfigurator; import com.cloud.agent.Agent.ExitStatus; import com.cloud.agent.dao.StorageComponent; @@ -377,6 +380,18 @@ public class AgentShell implements IAgentShell { public void init(String[] args) throws ConfigurationException { + // PropertiesUtil is used both in management server and agent packages, + // it searches path under class path and common J2EE containers + // For KVM agent, do it specially here + + File file = new File("/etc/cloudstack/agent/log4j-cloud.xml"); + if(file == null || !file.exists()) { + file = PropertiesUtil.findConfigFile("log4j-cloud.xml"); + } + DOMConfigurator.configureAndWatch(file.getAbsolutePath()); + + s_logger.info("Agent started"); + final Class<?> c = this.getClass(); _version = c.getPackage().getImplementationVersion(); if (_version == null) { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/c235d029/utils/src/com/cloud/utils/LogUtils.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/LogUtils.java b/utils/src/com/cloud/utils/LogUtils.java index 975de83..19c4c0e 100644 --- a/utils/src/com/cloud/utils/LogUtils.java +++ b/utils/src/com/cloud/utils/LogUtils.java @@ -19,7 +19,6 @@ package com.cloud.utils; import java.io.File; import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.xml.DOMConfigurator; public class LogUtils { @@ -36,7 +35,7 @@ public class LogUtils { file = PropertiesUtil.findConfigFile(nameWithoutExtension + ".properties"); if (file != null) { s_logger.info("log4j configuration found at " + file.getAbsolutePath()); - PropertyConfigurator.configureAndWatch(file.getAbsolutePath()); + DOMConfigurator.configureAndWatch(file.getAbsolutePath()); } } }
