public void info(Object message) {
if (logger.isInfoEnabled()) {
forcedLog(logger, Level.INFO, message);
}
}
public void info(Object message, Throwable t) {
if (logger.isInfoEnabled()) {
forcedLog(logger, Level.INFO, message, t);
}
}
public void info(String pattern, Object... arguments) {
if (logger.isInfoEnabled()) {
forcedLog(logger, Level.INFO, format(pattern, arguments));
}
}
public void info(String pattern, Throwable t, Object... arguments) {
if (logger.isInfoEnabled()) {
forcedLog(logger, Level.INFO, format(pattern, arguments), t);
}
}
public void warn(Object message) {
if (logger.isEnabledFor(Level.WARN)) {
forcedLog(logger, Level.WARN, message);
}
}
public void warn(Object message, Throwable t) {
if (logger.isEnabledFor(Level.WARN)) {
forcedLog(logger, Level.WARN, message, t);
}
}
public void warn(String pattern, Object... arguments) {
if (logger.isEnabledFor(Level.WARN)) {
forcedLog(logger, Level.WARN, format(pattern, arguments));
}
}
public void warn(String pattern, Throwable t, Object... arguments) {
if (logger.isEnabledFor(Level.WARN)) {
forcedLog(logger, Level.WARN, format(pattern, arguments), t);
}
}
public void error(Object message) {
if (logger.isEnabledFor(Level.ERROR)) {
forcedLog(logger, Level.ERROR, message);
}
}
public void error(Object message, Throwable t) {
if (logger.isEnabledFor(Level.ERROR)) {
forcedLog(logger, Level.ERROR, message, t);
}
}
public void error(String pattern, Object... arguments) {
if (logger.isEnabledFor(Level.ERROR)) {
forcedLog(logger, Level.ERROR, format(pattern, arguments));
}
}
public void error(String pattern, Throwable t, Object... arguments) {
if (logger.isEnabledFor(Level.ERROR)) {
forcedLog(logger, Level.ERROR, format(pattern, arguments), t);
}
}
public void fatal(Object message) {
if (logger.isEnabledFor(Level.FATAL)) {
forcedLog(logger, Level.FATAL, message);
}
}
public void fatal(Object message, Throwable t) {
if (logger.isEnabledFor(Level.FATAL)) {
forcedLog(logger, Level.FATAL, message, t);
}
}
public void fatal(String pattern, Object... arguments) {
if (logger.isEnabledFor(Level.FATAL)) {
forcedLog(logger, Level.FATAL, format(pattern, arguments));
}
}
public void fatal(String pattern, Throwable t, Object... arguments) {
if (logger.isEnabledFor(Level.FATAL)) {
forcedLog(logger, Level.FATAL, format(pattern, arguments), t);
}
}
public void assertLog(boolean assertion, String message) {
if (!assertion) {
forcedLog(logger, Level.ERROR, message);
}
}
private static void forcedLog(Logger logger, Level level, Object message) {
logger.callAppenders(new LoggingEvent(FQCN, logger, level, message, null));
}
private static void forcedLog(Logger logger, Level level, Object message, Throwable t) {
logger.callAppenders(new LoggingEvent(FQCN, logger, level, message, t));
}
private static String format(String pattern, Object... arguments) {
return MessageFormat.format(pattern, arguments);
}
}
分享到:
相关推荐
TYPE-C-31-M-02 USB Type-c allegro封装 韩荣HRo TYPE-C-31-M-02 规格:10mm*9.65mm 插拔力:5-20N 类型:TYPE-C母座 品名:TYPE-C母座 TYPE-C母座技术参数: 1.额定负荷: DC 40V 2.5A 2.接触电阻: ≤40mΩ 3.绝缘阻抗:...
包含J30J等封装,总共几百个封装,是allegro的PCB封装,只有PCB封装,有dra文件,pad文件,psm文件,fsm文件。还包含了一些其他的封装, 所有的封装名和器件名都在excel表里面有对应关系,库文件很全
TYPE-C-31-M-01 USB Type-c allegro封装 韩荣HRo TYPE-C-31-M-01 规格:10mm*9.65mm 插拔力:5-20N 类型:TYPE-C母座 品名:TYPE-C母座 TYPE-C母座技术参数: 1.额定负荷: DC 40V 2.5A 2.接触电阻: ≤40mΩ 3.绝缘阻抗:...
SOT封装库SOT23_5 SOT223 SOT143 SOT89 SOT343 SOT23ALTIUM库(AD库PCB封装库 ): SOT 89.PcbLib SOT143_L.PcbLib SOT143_M.PcbLib SOT143_N.PcbLib SOT223_L.PcbLib SOT223_M.PcbLib SOT223_N.PcbLib SOT23-5.PcbLib...
SOP4封装是一种常见的半导体器件封装形式,全称为Small Outline Package,意为小型轮廓封装。这种封装主要用于集成电路(IC)的封装,特别是针对数字逻辑电路和一些微控制器等芯片。SOP4封装的特点是体积小、重量轻...
《Log4j笔记 第九章 封装Log4j》 在Java开发中,日志记录是一项非常重要的任务,它帮助我们追踪程序运行时的状态,定位和解决错误。Log4j是Apache组织提供的一款强大的日志框架,因其高效、灵活和可配置性而广受...
PCB设计 SCN-2-19 AD封装PCB设计 SCN-2-19 AD封装PCB设计 SCN-2-19 AD封装PCB设计 SCN-2-19 AD封装PCB设计 SCN-2-19 AD封装PCB设计 SCN-2-19 AD封装PCB设计 SCN-2-19 AD封装PCB设计 SCN-2-19 AD封装PCB设计 SCN-2-19...
4. **封装NAL单元**:将NAL单元转换为FLV的视频数据块。这涉及到添加FLV的标签头,包括时间戳、数据类型(视频或音频)和数据长度。对于H.264,NAL单元通常会被前缀一个特定的字节序列,例如0x09,表示这是一个关键...
AD封装带3D 自已第一次做带3D的封装。 xh2.54-4p 贴片AD封装,方便下载,可做多种3D封装。
QSOP24封装转DIP24封装的PCB文件----24引脚的0.635间距转成24引脚的2.54间距PCB
6. **事件数据结构**:Log4j2使用LogEvent对象封装日志信息,使其更易于处理和过滤。 7. **日志级别的优先级**:Log4j2允许设置每个Logger的优先级,便于控制日志输出的详细程度。 8. **自动重加载配置**:如果...
### SOT-23-6 封装尺寸详解 #### 一、SOT-23-6 封装概述 SOT-23-6(Small Outline Transistor Package)是一种小型化封装技术,广泛应用于各类电子元件如晶体管、运算放大器等。这种封装形式以其紧凑的设计和良好...
Altium Designer DDA PCB封装
4G5G模块MSATA盘(M.2_B-KEY+M.2_E-KEY 封装) AD集成封装库,已经其他一些USB3.0 ,RJ45 ,SD卡等,详细封装型号如下: Component Count : 69 Component Name ----------------------------------------------- ...
QFN-24_4*4封装
常用芯片LGA类封装PCB封装库(AD库,封装带3D视图),,Altium Designer的PCB封装库,.PcbLib格式的,带3D视图,非常实用。详细封装型号如下:Component Count : 6 Component Name ---------------------------------...
4. Micro C:是Micro USB系列的升级版,具有双向插拔特性,与Type-C相似,但在旧设备上更为常见。 5. Micro D和E:主要用于特定的工业和嵌入式应用,不广泛普及于消费电子产品。 了解这些封装规格有助于设计者选择...
《凡亿电路-PCB封装设计指导白皮书》是一份深入探讨PCB封装设计的专业文档,由华秋凡亿提供,旨在为电子工程师提供全面的封装设计理论和实践指导。封装设计是PCB设计中的关键步骤,它直接影响到电路板的性能、可靠性...
PCB元件,非常好用的封装库,设计贴片元件尝尝需要,但是PROTELL99SE的库中找不到。
PcbLib文件类型、直插元器件、贴片、Altium Designer封装库 KF-5.08连接器封装PCB文件3D封装Altium Designer库的型号类型如下,总有你需要的一款: KF2EDGK5.0-LI-2P...15P、KF2EDGK5.0-WI-2P...15P、KF2EDGK5.08-LI...