web開發過程中,我們經常使用log4j來實現日誌輸出。記錄層級在軟體試啟動並執行過程中經常調整。
如果修改一次log4j.xml就重新啟動一下web應用,實在是非常麻煩。
下面的程式可以實現log4j.xml動態配置。
(修改了log4j.xml之後,然後運行一下下面的jsp程式就可以了。
本程式不提供可視化配置log4j.xml的功能。
)
<%@ page contentType="text/html; charset=UTF-8"%>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
%>
<html>
<head>
<title>重新設定log4j</title>
<link href="${pageContext.request.contextPath}/css/styleqxgl.css" rel="stylesheet" type="text/css">
</head>
<body>
<%
try{
String location = config.getServletContext().getInitParameter("log4jConfigLocation");
out.println("location="+location+"<br><br>");
if (!org.springframework.util.ResourceUtils.isUrl(location)) {
// Resolve system property placeholders before resolving real path.
location = org.springframework.util.SystemPropertyUtils.resolvePlaceholders(location);
location = org.springframework.web.util.WebUtils.getRealPath(config.getServletContext(), location);
}
java.net.URL url = org.springframework.util.ResourceUtils.getURL(location);
org.apache.log4j.xml.DOMConfigurator.configure(url);
out.println("log4j重新設定成功!<br>");
out.println("時間:"+com.work.util.DateUtil.getCurrentDateTime());
}catch(Exception e){
out.println("log4j配置失敗!"+e.getMessage());
}
%>
<hr>
</body>
</html>