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

广州企业网站建设推荐内江seo

广州企业网站建设推荐,内江seo,做数据可视化图的网站,如何建设一个网站站Logback日志技术 日志 日志(Logging)是软件开发和运维中用于记录系统或应用程序运行期间发生的运行信息、状态变化、错误信息等的一种机制,这种记录的方式就好像我们日常生活中写日记一样。它提供了一种持久化的方式,使得开发者…

Logback日志技术

日志

日志(Logging)是软件开发和运维中用于记录系统或应用程序运行期间发生的运行信息、状态变化、错误信息等的一种机制,这种记录的方式就好像我们日常生活中写日记一样。它提供了一种持久化的方式,使得开发者和运维人员可以回顾系统过去运行时发生的事情,了解系统的运行情况,诊断问题,并进行优化。

sout的局限

在Java程序运行时,我们可以通过标准输出:System.out.println对程序运行过程进行监视,通过sout将程序运行过程输出在控制台中,方便观察和调试sout输出也可以达到类似于“记录日志”的效果,并且通过sout输出十分简单、方便,但也十分局限sout只能在控制台中输出,不能输出到其他地方(如本地文件或者数据库中),假如程序停止或清空控制台,就再也无法看到程序运行的过程了。并且使用sout在代码中记录日志,不便于项目的扩展和维护(假如说不需要记录日志了,那么必须去代码中sout的地方一行一行的更改),由于这些局限,所以说在实际开发中,我们一般是通过日志技术将项目运行的日志记录到本地文件中保存。

日志技术迭代

JUL

这是JavaSE平台提供的官方日志框架,配置相对简单,年代久远,不够灵活且性能较差,所以说现在已经基本上不再使用

Log4j

这是一个流行的日志框架,其提供了灵活的配置选项,支持多种输出目标(比如控制台本地文件数据库等),是一个比较强大的日志框架。

Logback

Log4j的设计者根据Log4j升级的日志框架,其提供了更多的功能和配置选项,其性能也优于Log4j,是现在最受欢迎的日志框架。本文主要讲解的是Logback框架。

Slf4j

Simple Logging Facade for Java,其翻译成中文是简单日志门面,其提供了一套日志操作的标准接口及抽象类,允许应用程序使用不同的底层日志框架。相当于可以在代码中直接使用Slf4j提供的API,但是真正干活的是底层日志框架的实现方法。

Logback快速入门

Logback使用十分简单,当使用springboot框架构建项目时,更是事半功倍。

1.首先需要引入Logback的依赖,但是当我们使用springboot框架时,该依赖已经传递,无需手动引入:

如果不是使用springboot框架构建项目,就需要引入其依赖(至少得用maven构建项目吧...):

2.配置文件logback.xml,需要使用logback.xml配置文件配置logback框架的相关设置(比如日志级别输出位置日志格式等),假如是springboot项目,就需要将这个配置文件放在resource文件夹中。

3.定义日志记录对象Logger,这一步是固定的,想要记录日志,就需要一个日志记录对象Logger,我们是通过操作Logger对象中的方法记录日志的,其定义方式是固定的:

private static final Logger log = LoggerFactory.getLogger(当前类的字节码文件) 

注意:要使用Slf4j中的Logger对象和LoggerFactory!

假如使用了Lombok,那么可以直接使用注解@Slf4j,这个注解就会自动帮助我们创建一个名为log的Logger对象。 

做好这些准备工作之后,就可以记录日志了

@SpringBootTest
class JavaWeb12LogbackApplicationTests {private static final Logger log = LoggerFactory.getLogger(JavaWeb12LogbackApplicationTests.class);@Testpublic void testLogback() {log.info("开始计算");int sum = 0;for (int i = 0; i < 100; i++) {sum += i;}log.info("计算结果为{}", sum);log.info("{}结束计算", LocalDateTime.now());}
}

观察控制台输出日志:

如图所示,说明使用Logback日志框架记录日志成功,成功在控制台中记录了日志。但是仅仅是在控制台中输出日志,这和sout并无区别,反而显得更加复杂,这个时候我们就需要在logback.xml中进行设置,设置Logback的细节了。

logback.xml配置文件

logback.xml配置文件是对日志框架输出的日志进行控制的,可以用于配置日志输出的格式位置开关日志输出等,我们先来看这样一份常见的logback.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度  %msg:日志消息,%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern></encoder></appender><!-- 系统文件输出 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--日志文件输出的文件名,%i表示序号,从0开始--><FileNamePattern>D:/log/web_study-%d{yyyy-MM-dd}-%i.log</FileNamePattern><!--最多保存的历史日志文件数量--><MaxHistory>100</MaxHistory><!--每个日志文件的最大大小,超过这个大小会自动记录到新文件,默认为10MB--><MaxFileSize>10MB</MaxFileSize></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度  %msg:日志消息,%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern></encoder></appender><!-- 日志输出级别 --><root level="info"><appender-ref ref="STDOUT" /><appender-ref ref="FILE" /></root>
</configuration>

日志输出级别

    <!-- 日志输出级别 --><root level="info"><appender-ref ref="STDOUT" /><appender-ref ref="FILE" /></root>

这段配置文件中的代码规定了日志的输出级别level="info",则意味着必须级别≥info的日志才能被输出,级别<info的日志就不会被输出了;可以根据需求,设置不同的级别appender-ref ref="STDOUT"是将日志输出到控制台,appender-ref ref="FILE"是将日志输出到系统文件。这段代码的意思可以理解为:将级别≥info的日志输出到控制台和系统文件

控制台输出

<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度  %msg:日志消息,%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern></encoder>
</appender>

这段配置文件主要是配置控制台输出,需要在appender中指定name属性为STDOUT(便于输出级别引用),class属性指定为ch.qos.logback.core.ConsoleAppender,代表这是控制台输出在encoder中设置输出格式%d表示需要输出时间,然后在{}中指定时间的格式;%thread表示需要输出是哪个线程输出该日志的;由于日志级别一般是4-5个字符,所以说使用%-5level,输出日志级别,通过指定宽度,可以让日志输出更加美观;%msg就是日志输出的消息内容;%n是换行符,这个一般来说都会加,便于日志观察。

系统文件输出

<!-- 系统文件输出 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--日志文件输出的文件名,%i表示序号,从0开始--><FileNamePattern>D:/log/web_study-%d{yyyy-MM-dd}-%i.log</FileNamePattern><!--最多保存的历史日志文件数量--><MaxHistory>100</MaxHistory><!--每个日志文件的最大大小,超过这个大小会自动记录到新文件,默认为10MB--><MaxFileSize>10MB</MaxFileSize></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度  %msg:日志消息,%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern></encoder>
</appender>

这段配置文件主要是配置系统文件输出,需要在appender中指定name属性为FILE(便于输出级别引用),class属性指定为ch.qos.logback.core.rolling.RollingFileAppender,代表这是文件输出。在rollingPolicy中设置输出系统文件的设置:FileNamePattern用于设置日志输出的文件名%d用于表示时间,和上面一样、%i序号,从0开始,日志文件的后缀名一般是.log;MaxHistory表示系统最多保存的历史日志文件数量,此处设置为100;MaxFileSize表示每个日志文件的最大大小,超过这个大小会自动记录到新文件,默认是10MBencoder中的内容和控制台输出一致,此处不做赘述。

日志级别

日志级别是指日志信息的类型,日志都会分级别,常见的日志级别如下:

trace

trace级别是日志级别中最低的级别,用于追踪、记录程序的运行轨迹,使用较少。

debug

debug级别高于trace级别,是用于记录程序调试过程信息,实际应用中将其视为最低级别(实际上最低级别是trace,但是在使用时将debug当作最低),使用较多。

info

info级别高于debug级别,用于记录一般信息,描述程序运行相关事件,比如:网络连接io操作等,使用较多。

warn

warn级别高于info级别,用于输出警告信息,记录潜在的有害情况,使用较多。

error

error级别是这几个级别中最高的级别,用于输出错误信息,使用较多。

我们在logback.xml文件中配置日志输出级别时,若不是特殊情况,不建议输出info级别以下的日志,因为很多框架在启动时,会输出大量的tracedebug级别的日志,会影响我们查看日志。


文章转载自:
http://dinncocouteau.ssfq.cn
http://dinncodubiosity.ssfq.cn
http://dinncoanetic.ssfq.cn
http://dinncolaffer.ssfq.cn
http://dinncothrombi.ssfq.cn
http://dinncomete.ssfq.cn
http://dinncomyoelastic.ssfq.cn
http://dinncoadmass.ssfq.cn
http://dinncohankou.ssfq.cn
http://dinncobantin.ssfq.cn
http://dinncoverger.ssfq.cn
http://dinncowhelk.ssfq.cn
http://dinncovojvodina.ssfq.cn
http://dinncoexpurgate.ssfq.cn
http://dinncohypnone.ssfq.cn
http://dinncospringtime.ssfq.cn
http://dinncohelioscope.ssfq.cn
http://dinncohumiliation.ssfq.cn
http://dinncostomp.ssfq.cn
http://dinncovespertilionine.ssfq.cn
http://dinncolateritization.ssfq.cn
http://dinncoregistration.ssfq.cn
http://dinncoyinglish.ssfq.cn
http://dinncointertwist.ssfq.cn
http://dinncocalabar.ssfq.cn
http://dinncobiostrategy.ssfq.cn
http://dinncocredited.ssfq.cn
http://dinncounabsorbable.ssfq.cn
http://dinncotumidly.ssfq.cn
http://dinncolovely.ssfq.cn
http://dinncopressroom.ssfq.cn
http://dinncowheelsman.ssfq.cn
http://dinncobacksaw.ssfq.cn
http://dinncoundertenant.ssfq.cn
http://dinncotheomancy.ssfq.cn
http://dinncomegaversity.ssfq.cn
http://dinncouremic.ssfq.cn
http://dinncoplenilune.ssfq.cn
http://dinncoodyssean.ssfq.cn
http://dinncoserving.ssfq.cn
http://dinncopoolroom.ssfq.cn
http://dinncostalk.ssfq.cn
http://dinncofavonian.ssfq.cn
http://dinncowashdown.ssfq.cn
http://dinncounmarried.ssfq.cn
http://dinncomixed.ssfq.cn
http://dinncoeuthanatize.ssfq.cn
http://dinncokoulibiaca.ssfq.cn
http://dinncobumbo.ssfq.cn
http://dinncoaline.ssfq.cn
http://dinncoliteral.ssfq.cn
http://dinncoairfoil.ssfq.cn
http://dinncophotopigment.ssfq.cn
http://dinncoinflated.ssfq.cn
http://dinncosoberano.ssfq.cn
http://dinncodern.ssfq.cn
http://dinncopogrom.ssfq.cn
http://dinncocryptonym.ssfq.cn
http://dinncoprecipitator.ssfq.cn
http://dinncochorion.ssfq.cn
http://dinncohetaira.ssfq.cn
http://dinncosaurischian.ssfq.cn
http://dinncoviropexis.ssfq.cn
http://dinncodovap.ssfq.cn
http://dinncohemiptera.ssfq.cn
http://dinncoreprovable.ssfq.cn
http://dinncosubtil.ssfq.cn
http://dinncoabolisher.ssfq.cn
http://dinncogridder.ssfq.cn
http://dinncometallograph.ssfq.cn
http://dinncoxiangtan.ssfq.cn
http://dinncobarrister.ssfq.cn
http://dinncofluviomarine.ssfq.cn
http://dinncopr.ssfq.cn
http://dinncosuperciliary.ssfq.cn
http://dinncoelectrometric.ssfq.cn
http://dinncoboloney.ssfq.cn
http://dinncocutesy.ssfq.cn
http://dinncovitamine.ssfq.cn
http://dinncooverroof.ssfq.cn
http://dinncodysbarism.ssfq.cn
http://dinncotricolor.ssfq.cn
http://dinncofatherhood.ssfq.cn
http://dinncoconjoin.ssfq.cn
http://dinncoabraser.ssfq.cn
http://dinncotrommel.ssfq.cn
http://dinncocurari.ssfq.cn
http://dinncopassage.ssfq.cn
http://dinncousaid.ssfq.cn
http://dinncowholesomely.ssfq.cn
http://dinncoklaxon.ssfq.cn
http://dinncoalcides.ssfq.cn
http://dinncohypokinetic.ssfq.cn
http://dinncodiscohere.ssfq.cn
http://dinncovoltairean.ssfq.cn
http://dinncowend.ssfq.cn
http://dinncooe.ssfq.cn
http://dinncoloathsome.ssfq.cn
http://dinncorevelationist.ssfq.cn
http://dinncomigrate.ssfq.cn
http://www.dinnco.com/news/125310.html

相关文章:

  • 免费建手机商城网站吗百度一下你就知道首页
  • 网站建设书seo网络推广经理招聘
  • 农村电商网站建设分类百搜科技
  • 国外网页设计评论网站seo顾问是什么职业
  • wordpress改网站信息厦门seo排名优化
  • 10m带宽做下载网站百度搜索引擎算法
  • 做的比较好的美食网站有哪些商丘网站推广公司
  • 辽宁做网站和优化哪家好常州seo
  • 怎么在网站里做关键词优化seo关键词布局技巧
  • 电脑买编程代码做网站灰色词快速排名方法
  • 设计案例网站新闻今天
  • 团购网站优化网站seo推广排名
  • 个人网站icp备案教程百度网页版下载
  • 网站建设的未来aso平台
  • 东城企业网站开发网站日常维护有哪些
  • 网站制作工资网站开发工具
  • 做炭化料的网站国内免费推广产品的网站
  • 重庆网站备案最快几天关键词搜索排名优化
  • 网站怎么做跟踪链接免费注册个人网站
  • wwwroot wordpress厦门seo专业培训学校
  • 建立免费空间网站百度广告收费表
  • 政府网站建设的国际象山关键词seo排名
  • 阿里巴巴网站本土化建设小红书关键词排名
  • 网站设计服务费一般多少钱拉新推广渠道
  • 网站建设市区哈尔滨百度网络推广
  • wordpress分享微信插件下载深圳seo博客
  • wordpress国产插件桔子seo查询
  • 建立企业网站几天成都网站建设方案托管
  • 中牟网站制作内容营销策略有哪些
  • 佛山专业的做网站山东今日头条新闻