动态控制log4j级数

来源:互联网 发布:linux cp rfp 编辑:程序博客网 时间:2024/06/15 10:11

1.页面

<select id="J_log">
<option value="0">请选择</option>
<option value="off">关闭日志</option>
<option value="debug">debug模式</option>
<option value="info">info模式</option>
<option value="error">error模式</option>
<option value="all">all模式</option>
</select>
 <input type="hidden" id="J_hidState" value="<%= LogManager.getRootLogger().getLevel().toInt()%>" />

2.js

<script type="text/javascript">
$(function(){

$("#J_log").val(getState($("#J_hidState").val()));


$("#J_log").change(function(){
var log = $("#J_log").val();
if(log=="0"){

alert("请选择!");

}else{
var sendData = {
logState : log
};
$.ajax({
 url: "/smarttask/DoLogServlet",
 //dataType: "post",
 data: sendData,
 success: function(data){
 $("#J_log").val(data);
 }
});
}
});

});

//得到状态
function getState(state){
switch (state){
case "10000" : 
return "debug";
break;
case "20000" : 
return "info";
break;
case "20000" : 
return "info";
break;
case "40000" : 
return "error";
break;
case "2147483647" : 
return "off";
break;
case "-2147483648" :
return all;
default:
return 0;
}
}
</script>

3.后台servlet

response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String logState = request.getParameter("logState");
Level level = Level.toLevel(getLevelInt(logState));
LogManager.getRootLogger().setLevel(level);
out.print(logState);
out.close();