西安火车站网站建设,网站的设计需要什么,材料网站建设,做网站的最大的挑战是什么目录
依赖
配置
实现 简单介绍下几大日志框架之间的关系
Log4j#xff1a;这是最早的日志框架之一。
Logback#xff1a;这是log4j的升级版。
Log4j2#xff1a;最新推出的日志框架。
Slf4j#xff1a;日志门面#xff0c;为各种日志框架提供统一的记录日志的接口。…目录
依赖
配置
实现 简单介绍下几大日志框架之间的关系
Log4j这是最早的日志框架之一。
Logback这是log4j的升级版。
Log4j2最新推出的日志框架。
Slf4j日志门面为各种日志框架提供统一的记录日志的接口。
接下来主要讲一下Logback的实现
依赖
spring-boot-dependencies 包含了 SLF4J日志框架 Logback 的依赖因此在使用 Spring Boot 项目时SLF4J Logback是自动包含的。
!-- SpringBoot 依赖配置 --
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope
/dependency
配置
在 Logback 配置文件中如 resources/logback.xml进行自定义配置以满足日志需求。
Logback 配置文件的部分能力
1. 日志级别可以设置全局日志级别例如 DEBUG、INFO、WARN 或 ERROR。
2. 日志输出格式可以定义日志消息的输出格式包括日期时间格式、日志级别、线程名、消息内容等。
3. 日志输出目的地可以配置将日志输出到控制台、文件、数据库、网络等。
4. 滚动策略对于文件输出可以配置滚动策略例如按大小滚动或按时间滚动。
5. 异步日志可以提高日志输出的性能通过异步方式记录日志。
6. 日志过滤可以定义过滤规则例如只记录特定级别的日志或只记录包含特定关键字的日志。
7. 附加配置可以配置其他高级功能例如使用多个日志上下文、集成第三方库等。
Logback 日志框架中的部分类介绍
ch.qos.logback.core.rolling.RollingFileAppender 是 Logback 日志框架中的一个类它用于将日志消息追加到一个滚动文件中。当文件达到一定大小时它会自动滚动创建一个新的日志文件同时保留旧的日志文件以便后续查看。
ch.qos.logback.core.rolling.TimeBasedRollingPolicy 是 Logback 日志框架中的一个滚动策略类用于按时间滚动日志文件。
ch.qos.logback.classic.filter.LevelFilter 是 Logback 日志框架中的一个过滤器类用于根据日志事件的级别来决定是否将该事件传递给后续的日志处理组件。
ch.qos.logback.core.ConsoleAppender 是 Logback 日志框架中的一个类用于将日志消息输出到控制台。
参考以下配置
?xml version1.0 encodingUTF-8?
configuration scantrue scanPeriod60 seconds!-- 日志输出格式 --property namelogPattern value%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n /!-- 日志存放路径 --property namelogPath valuelogs/bibo /!-- 控制台输出 --appender nameCONSOLE classch.qos.logback.core.ConsoleAppenderencoderpattern${logPattern}/pattern/encoder/appender!-- 系统日志输出 INFO --appender nameFILEINFO classch.qos.logback.core.rolling.RollingFileAppenderfile${logPath}/info.log/file!-- 循环政策基于时间创建日志文件 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 日志文件名格式 --fileNamePattern${logPath}/info.%d{yyyy-MM-dd}.log/fileNamePattern!-- 日志最大的历史 90天 --maxHistory90/maxHistory/rollingPolicyencoderpattern${logPattern}/pattern/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 过滤的级别 --levelINFO/level!-- 匹配时的操作接收记录 --onMatchACCEPT/onMatch!-- 不匹配时的操作拒绝不记录 --onMismatchDENY/onMismatch/filter/appender!-- 系统日志输出 ERROR --appender nameFILEERROR classch.qos.logback.core.rolling.RollingFileAppenderfile${logPath}/error.log/file!-- 循环政策基于时间创建日志文件 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 日志文件名格式 --fileNamePattern${logPath}/error.%d{yyyy-MM-dd}.log/fileNamePattern!-- 日志最大的历史 90天 --maxHistory90/maxHistory/rollingPolicyencoderpattern${logPattern}/pattern/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 过滤的级别 --levelERROR/level!-- 匹配时的操作接收记录 --onMatchACCEPT/onMatch!-- 不匹配时的操作拒绝不记录 --onMismatchDENY/onMismatch/filter/appender!-- 一些第三方包的日志过滤级别 --logger nameorg.springframework levelwarn /logger nameorg.apache levelWARN /!--系统操作日志总体输出级别--root levelinfoappender-ref refCONSOLE /appender-ref refFILEINFO /appender-ref refFILEERROR //root
/configuration
实现
为某个具体的类创建一个名为logger的静态日志记录器对象并且这个对象在初始化后不能再被修改。在后续的代码中可以使用这个logger对象来进行日志记录。
private final static Logger logger LoggerFactory.getLogger(SysLoginService.class);
logger常用记录日志级别
1. DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的主要用于开发过程中打印一些运行信息。
2. INFO记录一般信息这些信息可以帮助开发人员了解应用程序的运行情况。
3. WARN记录警告信息这些信息可能会导致潜在的问题但不会影响应用程序的正常运行。
4. ERROR指出虽然发生错误事件或者异常捕获但不影响系统的继续运行。打印错误和异常信息如果不想输出太多的日志可以使用这个级别。
logger.info(账号密码尝试登录{}, IP: {}, username, IpUtils.getIpAddr(ServletUtils.getRequest()));
try {logger.debug(res: {}, res);
} catch (Exception e) {logger.warn(error, e);logger.error(e.getMessage(), e);logger.error(Bad get request{}, newUrl);
}