logback下载步骤:
logback官网https://logback.qos.ch/index.html教程http://t.csdn.cn/xSK0I
点击SLF4J API进去,注意看右上角的标题是有变化的,是什么目录下就会显示什么目录,点击下载
然后一样点击右下角的Maven
下载这三个,按照教程来,不下载最新版本,他有两次进入方式,以logback-core为例,当点击Maven进入之后,找到logback-core.jar包点击进去然后选择1.2.3版本就可以,其他都一样
然后点击目录点击主页
然后点击左下角的Maven,一样的下载方式
导入:
1.在模块下创建文件夹Directory,命名为lib
2.将三个jar包复制粘贴进来
3.全选三个jar包右键点击add as Library
4.如果jar包可以展开,证明导入成功
5.也可以点击File→Project Structure→Libraries
创建配置文件:
新建txt文件,将下面代码复制进去
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- CONSOLE :表示当前的日志信息是可以输出到控制台的 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--输出流对象 默认 System.out 改为 System.err 其中err:控制台输出日志为红色,而out为黑色-->
<target>System.out</target>
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c [%thread] : %msg%n</pattern>
</encoder>
</appender>
<!-- File:表示当前的日志信息是可以输出到文件的 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>utf-8</charset><!-- idea输出的都是utf-8格式,改其他格式会容易乱码 -->
</encoder>
<!--日志输出路径(logback_message.log是文档名,下方还有一处文件名(不用写.log))-->
<file>此处输入存储路径!!!\logback_message.log</file>
<!--指定日志文件拆分和压缩规则(防止文件过大)-->
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--通过指定压缩文件名称,来确定分割文件方式-->
<fileNamePattern>此处输入存储路径!!!\logback_message-%d{yyyy-MMdd}.log%i.gz</fileNamePattern>
<maxFileSize>1MB</maxFileSize> <!--文件拆分大小-->
</rollingPolicy>
</appender>
<!--
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF (关掉), 默认debug(可忽略大小写)
<root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
-->
<root level="INFO"> <!--打印规则:只打印不低于当前级别的日志-->
<appender-ref ref="CONSOLE"/> <!--如果这个地方不配置关联打印的位置,改位置将不会记录日志-->
<appender-ref ref="FILE" /> <!--如果这个地方删除了,只会存储文件,但文件里是没有记录信息的-->
</root>
</configuration>
然后将文件名改为 logback.xml,然后粘贴到src里,注意!只能粘贴到src里
导入后将两处日志输出路径修改一下,如果没有此路径将出现一堆英文
枚举:
作用:为了间接的表示固定的值
1. 表示Enum类里的方法所有枚举都能使用
2. 类名.枚举型名称可以访问指定枚举(应用场景?)
3.Season spring = Season.Spring;(重点)
6.创建完有参和无参构造之后,若无参构造被注释掉,此时和特点3,相冲突了,因为类名.枚举型名称,访问的就是无参构造(不管你写不写构造,所有类默认都会自带无参构造),此时可以将枚举改成带参构造
疑问?
此处this.name访问私有变量就会编译报错,是什么原因?重写就有继承关系?要用反编译去解释?
方法的应用