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

保定市建网站的公司图书馆网站建设所需资料

保定市建网站的公司,图书馆网站建设所需资料,cms网站,手机企业网站管理系统前言 Java日志体系混乱#xff1f;Java日志框架系列#xff0c;清晰简洁整理好整个Java的日志框架体系。第一篇#xff0c;JDK原生日志框架——JUL。 目录 1.概述 2.日志级别 3.配置 4.继承关系 1.概述 日志框架的核心问题#xff1a; 日志是用来记录应用的一些运行…前言 Java日志体系混乱Java日志框架系列清晰简洁整理好整个Java的日志框架体系。第一篇JDK原生日志框架——JUL。 目录 1.概述 2.日志级别 3.配置 4.继承关系 1.概述 日志框架的核心问题 日志是用来记录应用的一些运行信息的。假设没有日志框架我们要在应用里手动实现日志相关功能我们需要关注些什么其实仔细想想无非两点 记录哪些信息 记录到哪里去 当然作为日志框架来说为了方便使用它还要关注一点就是 如何进行方便的配置 java日志体系中是先有的log4j后面才有了JDK自带的jul两者是两套体系互不兼容。但其实本质上jul就是抄的log4j其架构上都是一模一样的。以上三点核心问题我们看作为日志框架的开山鼻祖的log4j是怎样解决的 log4j给出的答案是 记录哪些信息——日志级别level 记录到哪里去——提供不同的输出方式appender文件、控制台、其它等等 如何进行方便的配置——除硬编码外提供配置文件 jul是一模一样的其只是把appender改成了handler而已。 2.日志级别 package com.eryi;import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;import java.util.logging.Level; import java.util.logging.Logger;public class Test {org.junit.Testpublic void test1() {//级别由低到高默认输出info以上级别Logger logger Logger.getLogger(abc);logger.log(Level.FINEST,FINEST level);logger.log(Level.FINER,FINER level);logger.log(Level.FINE,FINE level);logger.log(Level.CONFIG,CONFIG level);logger.log(Level.INFO,INFO level);logger.log(Level.WARNING,WARNING level);logger.log(Level.SEVERE,SEVERE level);logger.log(Level.FINEST,FINEST level);System.out.println(hello);} } 日志为什么是红色的因为底层调用了system.erro所以会输出的字体是红色的。 3.配置 可以用代码的方式对JUL进行配置 public static void main(String[] args) {// 获取根记录器Logger rootLogger Logger.getLogger();// 移除默认处理器rootLogger.setUseParentHandlers(false);// 创建控制台处理器ConsoleHandler consoleHandler new ConsoleHandler();// 设置级别consoleHandler.setLevel(Level.INFO);// 设置自定义格式器consoleHandler.setFormatter(new SimpleFormatter());// 设置自定义过滤器consoleHandler.setFilter(new CustomFilter());// 将处理器添加到根记录器rootLogger.addHandler(consoleHandler);// 输出日志Logger logger Logger.getLogger(JULConfigExample.class.getName());logger.severe(Severe message);logger.warning(Warning message);logger.info(Info message);logger.config(Config message);logger.fine(Fine message);logger.finer(Finer message);logger.finest(Finest message);}// 自定义格式器static class SimpleFormatter extends Formatter {Overridepublic String format(LogRecord record) {return [ record.getLevel() ] - record.getMessage() \n;}}// 自定义过滤器static class CustomFilter implements Filter {Overridepublic boolean isLoggable(LogRecord record) {// 在这里可以添加自定义的过滤逻辑return record.getLevel().intValue() Level.INFO.intValue();}} 当然更合理、更方便的方式肯定是配置文件。配置文件的示例模板在jre/lib目录下 把它拷贝过来改一下 #默认配置 handlers java.util.logging.ConsoleHandler .level FINEST#file hander配置 java.util.logging.FileHandler.pattern %h/java%u.log java.util.logging.FileHandler.limit 50000 java.util.logging.FileHandler.count 1 java.util.logging.FileHandler.formatter java.util.logging.XMLFormatter#console handler配置 java.util.logging.ConsoleHandler.level FINEST java.util.logging.ConsoleHandler.formatter java.util.logging.SimpleFormatter# 具体包路径下的日志级别 com.eryi.level FINEST 解读一下配置 默认配置 handlers: 指定默认的处理器这里是java.util.logging.ConsoleHandler表示使用控制台输出。 .level: 设置默认的日志级别这里是FINEST表示记录最详细的日志。 File Handler配置 java.util.logging.FileHandler.pattern: 设置文件处理器的日志文件的命名模式%h表示用户主目录%u表示一个唯一的数值%g表示循环计数器。这里是 %h/java%u.log。 java.util.logging.FileHandler.limit: 设置文件处理器的每个日志文件的大小限制这里是 50000 字节。 java.util.logging.FileHandler.count: 设置文件处理器循环的文件数这里是 1 个。 java.util.logging.FileHandler.formatter: 设置文件处理器的日志格式这里是 java.util.logging.XMLFormatter表示使用 XML 格式。 Console Handler配置 java.util.logging.ConsoleHandler.level: 设置控制台处理器的日志级别这里是 FINEST。 java.util.logging.ConsoleHandler.formatter: 设置控制台处理器的日志格式这里是 java.util.logging.SimpleFormatter表示使用简单格式。 具体包路径下的日志级别 com.eryi.level: 设置特定包路径下的日志级别这里是 FINEST表示 com.eryi 包下的日志级别为最详细。 这里要说一下为什么有了.level的配置之后还推出了专门指定某个包路径下日志级别的配置。是因为logger之间是有父子关系的。.level会对根logger生效其余logger是继承自根logger的但肯定工程上不一定是全局日志级别都是一致的会有需求需要单独定制某一个或者某一些的logger的日志级别。 使用效果如下 4.继承关系 logger之间存在父子关系。 root logger是最顶层的父logger Logger a Logger.getLogger(a); Logger b Logger.getLogger(b); System.out.println(a.getParent()); System.out.println(b.getParent()); 通过父名·子名定义父子关系 Logger a Logger.getLogger(a); Logger b Logger.getLogger(a.b); System.out.println(a.getParent()); System.out.println(b.getParent()a); 为什么在设计的时候会存在父子关系 Java Util LoggingJUL的Logger之间存在父子关系这是为了实现日志记录的层次结构和更方便的配置管理。这种父子关系的设计使得日志记录器可以继承和继承配置。
http://www.yutouwan.com/news/385905/

相关文章:

  • 学校网站网页制作足球推介网
  • 微网站平台怎样做网站宁海网站建设
  • 单位做网站怎么做大型广告公司有哪些
  • 建设网站需要哪些职位网络规划设计师和信息系统项目管理师哪个好考
  • python怎么做专门的手机网站淘宝网站怎么做视频
  • 海外红酒网站建设汶上网站制作
  • 上海城市建设官方网站小说网站开发思路
  • 平台网站建设外包费用国外idc网站
  • 做网站的新闻科技有限公司英文
  • 网站建设 采集微信小程序公司
  • 网页设计与网站建设简答题wordpress阅读量造假
  • 图标设计网站音乐网站开发代码
  • 帝国cms做的网站云南创网科技有限公司
  • 网站开发费属于研发费用吗公司网站招聘费如何做会计分录
  • wordpress建站论坛网站开发使用的软件
  • 新公司成立建设网站flash网站开发工具
  • 外贸网站怎么注册邯郸如何做企业网站
  • iis7.5部署网站全国企业信用信息公示系统年报
  • 个人网站设计模板传奇页游排行榜前十名
  • 网站绑定域名大学生心里健康网站设计与建设
  • 网站建设需要准备什么软件vs2013做的网站
  • 如何做线上网站的网站jquery素材网站
  • 咋做黄页网站蓬莱网页设计
  • 手机网站源码带后台wordpress反应
  • 网站内容架构网站建设推销话术
  • 园林景观设计公司计划书长春网络推广seo
  • iis网站域名访问公众号怎么弄好看的模板
  • wap手机网站描述正确的是做纺织的用什么网站
  • 孝感织云网站建设成都项目网站建设
  • 凡客网站建立一个人可以建设网站吗