现在我们有一个服务端的程序,后续的功能需求是要求在程序运行过程中动态更改log4j的日志级别、文件名、文件路径等信
息,原先是DOMConfigurator.configureAndWatch 这个方法加载了log4j配置文件,如果用动态加载应该用log4j中的哪个类来进行设值?
设置完成以后再运行DOMConfigurator.configureAndWatch就可以了吗?
息,原先是DOMConfigurator.configureAndWatch 这个方法加载了log4j配置文件,如果用动态加载应该用log4j中的哪个类来进行设值?
设置完成以后再运行DOMConfigurator.configureAndWatch就可以了吗?
* 写运行日志
*
* @param level 日志级别
* @param message 日志信息
* @param throwable 异常信息
*/
public static void runLog(IfRun level, String message, Throwable throwable)
{
try
{
setMDC(IfRun.LOG_TYPE_RUN);
switch (level.getLevel())
{
case IfRun.DEBUG: if (runLog.getRepository().isDisabled(AppLevel.DEBUG_INT))
{
return;
}
if (AppLevel.DEBUG.isGreaterOrEqual(runLog.getEffectiveLevel()))
{
runLog.log(FQCN, AppLevel.DEBUG, message, throwable);
}
break;
case IfRun.INFO:
if (runLog.getRepository().isDisabled(AppLevel.INFO_INT))
{
return;
}
if (AppLevel.INFO.isGreaterOrEqual(runLog.getEffectiveLevel()))
{
runLog.log(FQCN, AppLevel.INFO, message, throwable);
}
break;
case IfRun.NOTICE:
if (runLog.getRepository().isDisabled(AppLevel.NOTICE_INT))
{
return;
}
if (AppLevel.NOTICE.isGreaterOrEqual(runLog.getEffectiveLevel()))
{
runLog.log(FQCN, AppLevel.NOTICE, message, throwable);
}
break;
case IfRun.WARN:
if (runLog.getRepository().isDisabled(AppLevel.WARN_INT))
{
return;
}
if (AppLevel.WARNING.isGreaterOrEqual(runLog.getEffectiveLevel()))
{
runLog.log(FQCN, AppLevel.WARNING, message, throwable);
}
break;
case IfRun.ERROR:
if (runLog.getRepository().isDisabled(AppLevel.ERROR_INT))
{
return;
}
if (AppLevel.ERROR.isGreaterOrEqual(runLog.getEffectiveLevel()))
{
runLog.log(FQCN, AppLevel.ERROR, message, throwable);
}
break;
case IfRun.CRITICAL:
if (runLog.getRepository()
.isDisabled(AppLevel.CRITICAL_INT))
{
return;
}
if (AppLevel.CRITICAL.isGreaterOrEqual(runLog.getEffectiveLevel()))
{
runLog.log(FQCN, AppLevel.CRITICAL, message, throwable);
}
break;
case IfRun.ALERT:
if (runLog.getRepository().isDisabled(AppLevel.ALERT_INT))
{
return;
}
if (AppLevel.ALERT.isGreaterOrEqual(runLog.getEffectiveLevel()))
{
runLog.log(FQCN, AppLevel.ALERT, message, throwable);
}
break;
case IfRun.EMERGENCY:
if (runLog.getRepository()
.isDisabled(AppLevel.EMERGENCY_INT))
{
return;
}
if (AppLevel.EMERGENCY.isGreaterOrEqual(runLog.getEffectiveLevel()))
{
runLog.log(FQCN, AppLevel.EMERGENCY, message, throwable);
}
break;
default:
break;
}
}
finally
{
resetMDC();
}
}
log.error("","");
log.debug("");
等
log4j.rootLogger=ERROR, common
log4j.logger.cn.sh.cares=ERROR, framework
log4j.logger.ecmr.quality.am=DEBUG, am
log4j.logger.org.hibernate=ERROR,hibernate
log4j.logger.org.springframework=ERROR,springlog4j.appender.common=org.apache.log4j.ConsoleAppender
#log4j.appender.common=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.common.File=am/common.log
log4j.appender.common.layout=org.apache.log4j.PatternLayout
log4j.appender.common.layout.ConversionPattern==%d %-5p [%c] - %m%nlog4j.appender.framework=org.apache.log4j.DailyRollingFileAppender
log4j.appender.framework.File=am/framework.log
log4j.appender.framework.layout=org.apache.log4j.PatternLayout
log4j.appender.framework.layout.ConversionPattern==%d %-5p [%c] - %m%nlog4j.appender.am=org.apache.log4j.DailyRollingFileAppender
log4j.appender.am.File=am/am.log
log4j.appender.am.layout=org.apache.log4j.PatternLayout
log4j.appender.am.layout.ConversionPattern==%d %-5p [%c] - %m%nlog4j.appender.hibernate=org.apache.log4j.DailyRollingFileAppender
log4j.appender.hibernate.File=am/hibernate.log
log4j.appender.hibernate.layout=org.apache.log4j.PatternLayout
log4j.appender.hibernate.layout.ConversionPattern==%d %-5p [%c] - %m%nlog4j.appender.spring=org.apache.log4j.DailyRollingFileAppender
log4j.appender.spring.File=am/spring.log
log4j.appender.spring.layout=org.apache.log4j.PatternLayout
log4j.appender.spring.layout.ConversionPattern==%d %-5p [%c] - %m%n