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

自己做网站 微信建设网站那家好

自己做网站 微信,建设网站那家好,贵州建设学校网站,廊坊创景科技有限公司开发的app目录 打印日志 日志的级别 打印文件 日志过滤器 日志输出流程 首先#xff0c;为什么要使用日志系统#xff1f; 如果单纯地用System.out.println打印信息#xff0c;如果项目比较大#xff0c;存在大量的信息就会显得非常凌乱。 而且#xff0c;当我们希望在debug的…目录 打印日志 日志的级别 打印文件 日志过滤器 日志输出流程 首先为什么要使用日志系统 如果单纯地用System.out.println打印信息如果项目比较大存在大量的信息就会显得非常凌乱。 而且当我们希望在debug的时候打印某些信息而运行的时候不打印使用直接输出的方法就行不通了。 因此我们需要使用日志框架来规范日志的输出。 打印日志 JDK为我们提供了一个自带的日记框架位于java.util.loggingJUL名称的来源包下可以使用此框架来实现日志的规范化打印 public static void main(String[] args) { //获取日志打印器Logger logger Logger.getLogger(Main.class.getName()); //输出一个字符串信息logger.info(我是日志); } 以上日志打印的结果为 十一月 01, 2024 9:21:52 下午 com.test.Main main 信息: 我是日志 可以看到日志打印是会比普通的print方法多出一些内容的 日志的级别 日志分为7个级别 SERVER(最高级别) 一般用于代表严重错误WARNING一般用于表示某些警告单不足以判断为错误INFO默认级别常规消息CONFIGFINEFINERFINEST(最低级别 我们之前使用的代码 logger.info(我是日志); 就是输出的INFO级别的日志 可以通过log方法来设定日志输出的级别 public static void main(String[] args) {Logger logger Logger.getLogger(Main.class.getName()); //server级别的错误可以传入异常logger.log(Level.SEVERE,我是server日志,new IOException(IO错误));logger.log(Level.WARNING,我是warning日志);logger.log(Level.INFO,我是info日志);logger.log(Level.CONFIG,我是config日志);logger.log(Level.FINE,我是fine日志);} 输出的结果为 十一月 01, 2024 10:07:41 下午 com.test.Main main 严重: 我是server日志 java.io.IOException: IO错误     at com.test.Main.main(Main.java:13) 十一月 01, 2024 10:07:41 下午 com.test.Main main 警告: 我是warning日志 十一月 01, 2024 10:07:41 下午 com.test.Main main 信息: 我是info日志 可以看到server级别的错误可以传入异常类型打印出的日志会明确得到异常的类型但程序并不会因为这个传入的异常终止 另外可以发现低于默认级别的日志没有输出这是因为日志设定的输出等级就是输出默认级别以上的内容而我们可以手动修改日志的打印级别 public static void main(String[] args) {Logger logger Logger.getLogger(Main.class.getName());//修改日志级别logger.setLevel(Level.ALL);//不使用父日志处理器logger.setUseParentHandlers(false);//自定义日志处理器ConsoleHandler hander new ConsoleHandler();hander.setLevel(Level.ALL);logger.addHandler(hander);logger.log(Level.SEVERE,我是server日志,new IOException(IO错误));logger.log(Level.WARNING,我是warning日志);logger.log(Level.INFO,我是info日志);logger.log(Level.CONFIG,我是config日志);logger.log(Level.FINE,我是fine日志);} 每一个Logger都有一个父日志打印器而这个父日志打印器默认使用的ConsoleHandler这个的日志级别为INFO。并且默认情况下Java 的日志记录器会使用父处理器进行日志输出。因此想自定义日志输出级别时需要先关闭父处理器。 既然关闭了父处理器就需要自己再新建一个处理器在这段代码中设置了两次Level.ALLlogger.setLevel(Level.ALL)的作用是确保日志记录器捕获所有日志信息hander.setLevel(Level.ALL)的作用是控制实际输出的日志内容。即便记录器捕获了所有级别的日志但只有满足处理器级别条件的日志才会被真正输出。 打印文件 日志处理器不仅仅只有控制台打印也可以打印文件 这时就需要使用文件处理器 文件处理器和日志处理器可以同时存在 //打印到本地文件//自定义文件处理器FileHandler fileHandler new FileHandler(test.log);//设置文件打印的级别fileHandler.setLevel(Level.WARNING);logger.addHandler(fileHandler); 运行后会生成一个test.log文件文件中记录了打印的日志 ?xml version1.0 encodingUTF-8 standaloneno? !DOCTYPE log SYSTEM logger.dtd log recorddate2024-11-01T22:33:44/datemillis1730471624479/millissequence0/sequenceloggercom.test.Main/loggerlevelSEVERE/levelclasscom.test.Main/classmethodmain/methodthread1/threadmessage我是server日志/messageexceptionmessagejava.io.IOException: IO错误/messageframeclasscom.test.Main/classmethodmain/methodline32/line/frame/exception /record recorddate2024-11-01T22:33:44/datemillis1730471624496/millissequence1/sequenceloggercom.test.Main/loggerlevelWARNING/levelclasscom.test.Main/classmethodmain/methodthread1/threadmessage我是warning日志/message /record /log可以看到文件处理器打印出的内容格式和控制台处理器打印出的内容格式不太一样文件处理器默认打印出的格式为xml格式 这样有点难以阅读我们想修改一下文件处理器打印出的格式应该怎么办呢 这时就要用到另外一个类叫做SimpleFormatter这个类叫做日志格式化器是专门用于将日志转化为简单易读的格式的。 而控制台处理器就默认使用了这个类。 在文件处理器中使用.setFormatter()方法添加格式化器 SimpleFormatter simpleFormatter new SimpleFormatter();//打印到本地文件//自定义文件处理器FileHandler fileHandler new FileHandler(test.log);fileHandler.setFormatter(simpleFormatter);//设置文件打印的级别fileHandler.setLevel(Level.WARNING);logger.addHandler(fileHandler); 除了SimpleFormatter也可以使用XMLFormatter来将日志的格式改为xml格式 日志过滤器 如果我们不希望某些日志信息被输出可以自定义日志过滤器 Filter customFilter new Filter() {Overridepublic boolean isLoggable(LogRecord record) {// 只记录包含 IMPORTANT 的日志return record.getMessage().contains(IMPORTANT);}};// 将过滤器添加到处理器 handler.setFilter(customFilter); 自定义日志过滤器的本质是通过重写Filter接口中的isLoggable接口实现的 过滤器可以被应用到handler中也可以被应用到logger中 logger.setFilter(customFilter); 日志输出流程 整个日志输出流程是一个层层筛选、逐步处理的过程 应用程序生成日志Logger 接收并通过其自身的过滤器进行初步筛选。筛选通过的日志记录传递给 Handler并经过 Handler 的过滤器进一步筛选。最终符合条件的日志通过 Handler 输出到指定的外部系统。
http://www.dnsts.com.cn/news/124145.html

相关文章:

  • 比较酷炫的企业网站个人网站备案成功后换
  • asp网站作业下载上海外贸
  • 如何做网站内容管理应用宝aso优化
  • 衡阳建设企业网站微信公众号费用标准
  • Paas网站建设网页浏览器怎么清除缓存
  • 校园网站建设方案模板天津建设工程信息网电脑版登录
  • asp.net mvc 企业网站牡丹江
  • 企业营销类专业网站c2c网站的特点
  • 昆明cms模板建站wordpress局域网自定义域名
  • 有什么建筑网站新冠三阳最新消息
  • 游戏网站网页设计网站建设帮助中心
  • 用jsp sqlserver做的购物网站安徽省住房和城乡建设厅网站
  • 泉州网站搭建建英文产品网站
  • 超链接网站建设seo优化6个实用技巧
  • 输入一组基因做网络图的网站app制作软件排名
  • 定机票最便宜网站建设浙江的健康码小程序叫什么
  • 代做ansys网站小程序商店网址
  • 房产网站制作wordpress 维文版
  • 国外网页设计欣赏网站网站建设类有哪些岗位
  • 视频网站自己怎么做的做水军那些网站好
  • 微擎微网站开发wordpress数据库怎么连接
  • 淄博网站建设优化运营熊掌号wordpress.org密码
  • 做外汇网站卖判刑多少年网站服务器类型
  • 网页制作模板的淘宝网站代码udacity 移动网站开发
  • 临颍网站建设网络服务遇到问题请检查网络状况或稍后再试吧
  • 微信辅助做任务网站小型商城网站
  • 响应式网站开发asp南宁本地有几家网站开发
  • 花生壳做网站wordpress评论页面
  • 南宁网站建站推广推广网络推广
  • 淮南装饰公司网站建设陷在泥里无法前进 企业解决方案