package ***.cbb.log;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggerRepository;
/**
* 日志级别修改类,可以不停机(tomcat不需要重启)实现对日志记录级别的修改,
* 并即时生效。
* @author jianfeng.lu
*
*/
public final class LogLevelChanger
{
private static final Logger logger = Logger.getLogger(LogLevelChanger.class);
private static LogLevelChanger instance;
public static synchronized LogLevelChanger getInstance()
{
if (null == instance)
instance = new LogLevelChanger();
return instance;
}
public boolean changeLogLevel(String paramString)
{
if ((null == paramString) || ("".equals(paramString.trim())))
{
logger.warn("[amulog] changeLogLevel() strLevel is empty");
return false;
}
if ("Debug".equalsIgnoreCase(paramString))
{
logger.getLoggerRepository().getRootLogger().setLevel(Level.DEBUG);
return true;
}
if ("Info".equalsIgnoreCase(paramString))
{
logger.getLoggerRepository().getRootLogger().setLevel(Level.INFO);
return true;
}
if ("Warn".equalsIgnoreCase(paramString))
{
logger.getLoggerRepository().getRootLogger().setLevel(Level.WARN);
return true;
}
if ("Error".equalsIgnoreCase(paramString))
{
logger.getLoggerRepository().getRootLogger().setLevel(Level.ERROR);
return true;
}
if ("DEFAULT".equalsIgnoreCase(paramString))
{
logger.getLoggerRepository().getRootLogger().setLevel(getDefaultLogLevel());
return true;
}
logger.debug("[amulog] changeLogLevel() exit");
return false;
}
private Level getDefaultLogLevel()
{
logger.debug("[amulog] getDefaultLogLevel() enter.");
Level localLevel = null;
String str = LogMgrHelper.getInstance().getDefaultLogLevel();
if ("error".equalsIgnoreCase(str))
localLevel = Level.ERROR;
else if ("warn".equalsIgnoreCase(str))
localLevel = Level.WARN;
else if ("info".equalsIgnoreCase(str))
localLevel = Level.INFO;
else if ("debug".equalsIgnoreCase(str))
localLevel = Level.DEBUG;
else
localLevel = Level.ERROR;
logger.debug("[amulog] getDefaultLogLevel() leave.");
return localLevel;
}
public String getLogLevel()
{
String str = logger.getLoggerRepository().getRootLogger().getLevel().toString();
if ("Debug".equalsIgnoreCase(str))
str = "Debug";
if ("Info".equalsIgnoreCase(str))
str = "Info";
if ("Warn".equalsIgnoreCase(str))
str = "Warn";
if ("Error".equalsIgnoreCase(str))
str = "Error";
return str;
}
}
分享到:
相关推荐
工会主席在界别组长在座谈会上的发言稿.docx
logger简单 高效 支持日志文件自动切分 过期文件自动删除1:支持日志按大小分文件(文件大小支持用户自定义,默认5010241024)2:支持按照用户自己的实际情况选择每天文件保存的数量(默认10)3:支持每天凌晨定时...
logboot是一个基于logback日志实现和slf4j日志接口的,零配置结构化日志管理组件。使用logboot后,您不用再编写logback繁琐的日志配置文件...logboot的关注点是业务界别的应用在开发调试阶段和生产运行阶段的日志管理。
logboot是一个基于logback日志实现和slf4j日志接口的,零配置结构化日志管理组件。使用logboot后,您不用再编写logback繁琐的日志配置文件...logboot的关注点是业务界别的应用在开发调试阶段和生产运行阶段的日志管理。
提案范文中,提案者提出要加强界别提案的利用,界别提案是由同一界别的委员共同讨论、整合形成的提案,代表了特定群体的集体意见,往往具有较高的质量和代表性。目前,界别提案的比例相对较低,可能影响了界别在政协...
5. 注解实现缓存和日志统一处理是怎么做的? 6. SpringBoot 分哪些模块? 7. 项目中的分页是怎么实现的? 8. 项目中都有哪些 SQL 表说一下吧? 数据库 1. 数据库中的锁有哪些? 2. MySQL 的读写分离解决了什么问题...
主要优spring概念、spring的ioc控制反转、spring的di依赖注入、spring的aop(手动aop、半自动aop、传统aop、基于aspectj的aop)、事务管理(事务的概念、事务的四大特征、事务的隔离界别、事务的引发的问题)、spring...
最佳步骤自动化测试实施步骤和最佳实践[2]软件测试遵守软件开发的规则你可能了解SEI(软件工程研究所)提出的CMM(能力成熟度模型)。CMM分为5个界别,该模型用来对软件开发组织划分等级。JerryWeinberg(美国著名软件...
2、进程和线程的区别是什么,至少写出三条? 3、字典常用方法 4、列举四个常见的魔法方法,并写出他们的执行顺序? 5、什么是mysql事务,四大特性和四个隔离界别分别是什么? 6、简述常见数据结构,并说明其特点?...
Spring 的最新版本是 3.1,但是在学习中,我们主要使用 Spring 2.x 版本。 二、Spring 的 jar 包分析 Spring 项目的 jar 包非常多,且它们的放置方法不同于普通项目。Spring 将所有的第三方 jar 文件都放在了 lib ...
4. 界别提案:在全会期间,由界别委员讨论并通过。 5. 委员小组提案:由委员小组讨论并通过,可由组长或全体委员签署。 6. 专门委员会提案:由政协的各专门委员会提出,需主任签署。 【提案的规范性要求】 为了...
logback常用配置,包含debug、info、warn、error、界别的配置,输出到文件,按照日期建立文件夹
4. 各界生物特征:不同界别的生物有各自的特征,例如,某些生物可能是自养或异养,有些是真核细胞,有的是单细胞或多细胞,部分生物能自由运动,而另一些则营固着生活。 这些知识点涵盖了生物进化的基本历程,包括...
1. **微生物的生命周期阶段**:微生物生长的四个阶段包括调整期、对数期、稳定期和衰亡期。在对数期,微生物代谢活跃,生长速度最快,而衰亡期则会出现代谢减慢、菌体畸形甚至死亡的现象。在稳定期,微生物开始产生...
随着一个产品的自动化工作不断深入,自动化的case积累数量持续增长,绝大部分毫无依赖关系的case由于串行运行,测试执行时间达到小时界别,且不易于优化。另外,ci运行时所需机器 1相关说明 1.1背景简介 随着...
它提供了AlwaysOn、高可用技术,集中了高可用界别的优点,确保企业无需增加成本和提高复杂度,即可实现高级别的可用性和数据保护。 2.1.2 SQL Server 2012数据库特性 SQL Server 2012具有五大特色: 1. AlwaysOn...
用大括号{}界别 3.算术运算 (1)特殊符号 乘方用**(幂运算) 整除用// (2)比较运算 可以写成3<4<7先计算3<4在计算4<7 (3)逻辑运算符 not and or 4.函数 (1)内建函数 取绝对值函数abs() 四舍五入...
2. **调研队伍建设**:发挥委员、专家和部门的协同作用,构建"三位一体"的调研团队。重视委员的主体作用,利用界别优势和部门专业性,确保调研的专业和技术含量。 3. **调研组织**:深入调查研究,提前学习相关政策...