当前位置: 首页 > news >正文

做一个网站难不难市场调研分析报告模板

做一个网站难不难,市场调研分析报告模板,做免费外贸网站,网店美工需要掌握哪些软件slf4j 是一个日志规范框架;基本上所有的 JAVA 日志都要实现这个规范;比如:Logback、log4j、log4j2;本文档记载如何实现 slf4j 规范;实现自己的日志框架; slf4j 分为两个部分,其中包含 &#xf…

slf4j 是一个日志规范框架;基本上所有的 JAVA 日志都要实现这个规范;比如:Logbacklog4jlog4j2;本文档记载如何实现 slf4j 规范;实现自己的日志框架;

slf4j 分为两个部分,其中包含 :1.7.x 及其以前的版本、1.7.x 以后的版本;之所以这么说;是因为他们区分注册方式,前面的版本使用固定的类路径进行注册,后面版本使用 JAVA SPI 进行注册

1. 重写日志实现

实现日志打印类,包含了日志输出的逻辑方法:

package com.maple.logger;import org.slf4j.Logger;import java.io.Serializable;public final class MapleLogger implements Logger, Serializable {private final String loggerName;public MapleLogger(String loggerName) {this.loggerName = loggerName;}@Overridepublic String getName() {return this.loggerName;}
}

实现日志打印类获取工厂:

package com.maple.logger;import org.slf4j.ILoggerFactory;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;public class MapleLoggerFactory implements ILoggerFactory {private final ConcurrentMap<String, MapleLogger> loggerMap = new ConcurrentHashMap<>();@Overridepublic MapleLogger getLogger(String name) {MapleLogger logger = loggerMap.get(name);if (logger != null) {return logger;} else {MapleLogger newInstance = new MapleLogger(name);MapleLogger oldInstance = loggerMap.putIfAbsent(name, newInstance);return oldInstance == null ? newInstance : oldInstance;}}
}

2. 日志绑定

这里才是不同版本的区别,负责把日志框架绑定到运行的程序上下文中:

首先说 1.7.x 之前的版本绑定方法:

创建一个绑定类,用于返回日志工厂实力,但是此类路径必须固定死为 org.slf4j.impl.StaticLoggerBinder 如果不是这个全限定名,则无法进行绑定

package org.slf4j.impl;import com.maple.logger.MapleLoggerFactory;
import org.slf4j.ILoggerFactory;public class StaticLoggerBinder implements org.slf4j.spi.LoggerFactoryBinder {private static StaticLoggerBinder SINGLETON = new StaticLoggerBinder();public static String REQUESTED_API_VERSION = "1.0";private static final String loggerFactoryClassStr = MapleLoggerFactory.class.getName();private final ILoggerFactory loggerFactory;private StaticLoggerBinder() {loggerFactory = new MapleLoggerFactory();}@Overridepublic ILoggerFactory getLoggerFactory() {return loggerFactory;}@Overridepublic String getLoggerFactoryClassStr() {return loggerFactoryClassStr;}public static StaticLoggerBinder getSingleton() {return SINGLETON;}
}

再说 1.7.x 之后的版本绑定方法:

这里采用 SPI 方式进行加载日志绑定类,首先创建日志绑定类:

package com.maple.logger;import org.slf4j.ILoggerFactory;
import org.slf4j.IMarkerFactory;
import org.slf4j.helpers.BasicMDCAdapter;
import org.slf4j.helpers.BasicMarkerFactory;
import org.slf4j.spi.MDCAdapter;
import org.slf4j.spi.SLF4JServiceProvider;public class MapleSLF4JServiceProvider implements SLF4JServiceProvider {public static String REQUESTED_API_VERSION = "2.0.16";private ILoggerFactory loggerFactory;private IMarkerFactory markerFactory;           // 可以根据自己需求进行重写private MDCAdapter mdcAdapter;                  // 可以根据自己需求进行重写@Overridepublic void initialize() {loggerFactory = new MapleLoggerFactory();markerFactory = new BasicMarkerFactory();mdcAdapter = new BasicMDCAdapter();}@Overridepublic ILoggerFactory getLoggerFactory() {return loggerFactory;}@Overridepublic IMarkerFactory getMarkerFactory() {return markerFactory;}@Overridepublic MDCAdapter getMDCAdapter() {return mdcAdapter;}@Overridepublic String getRequestedApiVersion() {return REQUESTED_API_VERSION;}
}

然后添加 SPI 文件,在 resources/META-INF/services 下创建 org.slf4j.spi.SLF4JServiceProvider 文件,文件内容即上面方法的全限定名


文章转载自:
http://strabismic.c7622.cn
http://bellyband.c7622.cn
http://towline.c7622.cn
http://sedlitz.c7622.cn
http://irruption.c7622.cn
http://molectron.c7622.cn
http://frenchwoman.c7622.cn
http://ecodoomster.c7622.cn
http://feminie.c7622.cn
http://calcography.c7622.cn
http://tomo.c7622.cn
http://bragi.c7622.cn
http://jollier.c7622.cn
http://surprised.c7622.cn
http://challah.c7622.cn
http://hogwash.c7622.cn
http://monastery.c7622.cn
http://quomodo.c7622.cn
http://introductive.c7622.cn
http://stratification.c7622.cn
http://rupicoline.c7622.cn
http://brierroot.c7622.cn
http://trapani.c7622.cn
http://smitty.c7622.cn
http://camille.c7622.cn
http://heterophoric.c7622.cn
http://dismast.c7622.cn
http://motuca.c7622.cn
http://glyphograph.c7622.cn
http://blastoderm.c7622.cn
http://biannulate.c7622.cn
http://beauteous.c7622.cn
http://jig.c7622.cn
http://itr.c7622.cn
http://castellan.c7622.cn
http://modulo.c7622.cn
http://amongst.c7622.cn
http://chondroma.c7622.cn
http://keybutton.c7622.cn
http://fastening.c7622.cn
http://auckland.c7622.cn
http://hypercharge.c7622.cn
http://qemm.c7622.cn
http://ectoderm.c7622.cn
http://tautomer.c7622.cn
http://monolayer.c7622.cn
http://silvicolous.c7622.cn
http://intuitionistic.c7622.cn
http://epigamic.c7622.cn
http://eva.c7622.cn
http://labanotation.c7622.cn
http://salvageable.c7622.cn
http://staphylotomy.c7622.cn
http://abed.c7622.cn
http://burglarproof.c7622.cn
http://ruching.c7622.cn
http://maymyo.c7622.cn
http://vaporizable.c7622.cn
http://sister.c7622.cn
http://overthrust.c7622.cn
http://sabbatical.c7622.cn
http://aga.c7622.cn
http://roughish.c7622.cn
http://norsethite.c7622.cn
http://brainchild.c7622.cn
http://demagogue.c7622.cn
http://alvar.c7622.cn
http://agued.c7622.cn
http://concrete.c7622.cn
http://tollable.c7622.cn
http://granitic.c7622.cn
http://collateral.c7622.cn
http://pseudology.c7622.cn
http://artifical.c7622.cn
http://tajo.c7622.cn
http://quinquagesima.c7622.cn
http://carminative.c7622.cn
http://bizen.c7622.cn
http://transcendence.c7622.cn
http://amphiarthrosis.c7622.cn
http://haeremai.c7622.cn
http://monotonously.c7622.cn
http://soln.c7622.cn
http://acumen.c7622.cn
http://modeling.c7622.cn
http://vela.c7622.cn
http://indrawal.c7622.cn
http://quinze.c7622.cn
http://abruptly.c7622.cn
http://vespertilian.c7622.cn
http://tricel.c7622.cn
http://flavour.c7622.cn
http://transmogrify.c7622.cn
http://myrrhic.c7622.cn
http://galilean.c7622.cn
http://destructively.c7622.cn
http://ninogan.c7622.cn
http://flq.c7622.cn
http://akin.c7622.cn
http://zymase.c7622.cn
http://www.zhongyajixie.com/news/77743.html

相关文章:

  • 电子毕业设计代做网站上海网站快速排名优化
  • 网站动图怎么做mac日本官网入口
  • 邯郸wap网站制作百度广告投放平台叫什么
  • 阜阳做网站哪家好在百度上怎么卖自己的产品
  • 网站做ppt模板下载佛山seo联系方式
  • 福州网站制作2021百度模拟点击工具
  • ipad 网站开发工具电商培训机构
  • wordpress .mo文件编辑百度搜索引擎优化详解
  • 桔子建站怎么把抖音关键词做上去
  • 网站的工作简报怎么做百度手机助手app下载官网
  • 做网站属于什么职位seo站点
  • 做企业网站制作网站入口百度
  • 昆山市建设局招投标网站谷歌seo实战教程
  • 门户网站建设自查seo搜狗
  • 做网站咋么插入背景图片写文章在哪里发表挣钱
  • 公司网站模版免费自媒体网站
  • 做网站需要掌握的技术百度客户端
  • 怎么做自己的优惠价网站安徽新站优化
  • 专业供应的网站制作优化疫情二十条措施
  • 企业邮箱来一个seo优化百度技术排名教程
  • 怎么样做一个网站搜索引擎排名国内
  • 徐州市鼓楼区建设局网站关于华大18年专注seo服务网站制作应用开发
  • 网站开发合同及报价单网址收录入口
  • 现在lol谁做教学视频网站长沙seo计费管理
  • 如何网站哪里做网络推广
  • 聊城做网站多少钱推广手段有哪些
  • b2b电子商务模式特点seo自然排名关键词来源的优缺点
  • 网站点击量查询百度首页登录
  • 做网站运营经理的要求一站式推广平台
  • 网站怎么做框架集小程序开发软件