广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JAVAlogback日志管理详解
  • 902
分享到

JAVAlogback日志管理详解

2024-04-02 19:04:59 902人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1、问题描述2、解决方案2.1 配置简要说明2.2 效果(1)测试方法(2)执行效果总结1、问题描述 关于java中的日志管理logback,去年写过关于logback介绍的文章

1、问题描述

关于java中的日志管理logback,去年写过关于logback介绍的文章,这次项目中又优化了下,记录下,希望能帮到需要的朋友。

2、解决方案

这次其实是碰到了一个问题,一般的情况是,会单独在linux上创建个用户,线上和开发环境一样,这样脚本中假如有相对目录的话,也能保持一致,但是这次因为线上环境创建其他用户有问题,只能用root用户操作,导致logback定义的目录,开发和线上不一致,线上是root/***,开发环境没有权限访问该目录(开发环境使用的普通用户),所以logback的目录,需要配置化,但是无法从application中获取,换了个方式解决的,记录下。

2.1 配置


<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <springProperty scope="context" name="LOG_HOME" source="path.log"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <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.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/laowangtest.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <MaxHistory>30</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>1kb</MaxFileSize>
<!--                <MaxFileSize>5MB</MaxFileSize>- -->
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <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>

简要说明

1、目录配置化

 <springProperty scope="context" name="LOG_HOME" source="path.log"/>

其中application.yml中配置是这样的:

path:
  log: e:/laowang/test

实际项目中还有另外的配置文件:application-dev.yml、application-test.yml、application-prod.yml,path.log是配置在每个文件中,每个里面的值不一样,而不是配置在公共配置application.yml中,这样根据打包规则就能获取不同的日志目录了。

另外至于为什么无法通过 方 式 获 取 值 , 网 上 或 者 官 方 给 的 答 案 是 , 在 容 器 中 , l o g b a c k 先 与 a p p l i c a t i o n . y m l 加 载 了 , 所 以 通 过 {}方式获取值,网上或者官方给的答案是,在容器中,logback先与application.yml加载了,所以通过 方式获取值,网上或者官方给的答案是,在容器中,logback先与application.yml加载了,所以通过{}方式就拿不到值了;同时保险起见,将logback.xml文件名称更改为logback-***.xml,例如:logback-spring.xml。

2、简单介绍下目前的配置

配置了两个Appender,一个打印到控制台,一个是到文件,以前把文件按照info、warn、errro,根据日志级别区分了打印文件,现在感觉没必要,就打印一个里面去,还按照以前方式滚动,首先按天,其次按大小滚动日志


   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_HOME}/laowangtest.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <MaxHistory>30</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>1kb</MaxFileSize>
<!--                <MaxFileSize>5MB</MaxFileSize>- -->
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

其中几个参数:

(1)FileNamePattern,文件目录;

(2)MaxHistory:日志保留天数;

(3)MaxFileSize:多大开始滚动(新增)日志,记得是5MB,后面还有B不要漏掉了。

2.2 效果

为了展示效果,把大小给成1kb滚动,弄个测试方法进行验证

(1)测试方法


@api(value = "test")
@RestController
public class TestController {
    Logger logger = LoggerFactory.getLogger(TestController. class);

    @RequestMapping(value ="/logTest")
    @ResponseBody
    public  String logTest() {
        logger.info("老王是帅哥老王是帅哥老王是帅哥");
        return "老王是帅哥!";
    }
}

(2)执行效果

浏览器:

生成文件:

文件内容:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: JAVAlogback日志管理详解

本文链接: https://www.lsjlt.com/news/134223.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JAVAlogback日志管理详解
    目录1、问题描述2、解决方案2.1 配置简要说明2.2 效果(1)测试方法(2)执行效果总结1、问题描述 关于java中的日志管理logback,去年写过关于logback介绍的文章...
    99+
    2022-11-12
  • MySQL 日志管理详解
    大纲 一、日志分类 二、日志详解 注:MySQL版本,Mysql-5.5.32(不同版本的mysql变量有所不同) 一、日志分类 ·   &n...
    99+
    2022-10-18
  • Linux服务器的日志管理详解
    这篇文章主要介绍“Linux服务器的日志管理详解”,在日常操作中,相信很多人在Linux服务器的日志管理详解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux服务器的日志管理详解”的疑惑有所帮助!接下来...
    99+
    2023-06-13
  • SpringBoot利用AOP实现一个日志管理详解
    目录1. 需求2. 新建一张日志表3. 写相应的Controller层4.Service接口层5.Service实现6.Mapper接口7.Mapper.xml(我用的是Mybati...
    99+
    2022-11-13
  • 十、syslog日志与loganalyzer日志管理
    10.1、rsyslog简介  syslog是一个历史悠久的日志系统。几乎所有的UNIX和Linux操作系统都采用syslog进行系统日志的管理和配置。Linux系统内核和许多程序会产生各种错误信...
    99+
    2022-10-18
  • MySQL日志管理
    一、四种日志1、错误日志:记录mysql服务器的启动、运行及关闭过程,默认以.err结尾    mysql> show variables like 'log_error';&nb...
    99+
    2022-10-18
  • SpringBoot使用AOP统一日志管理的方法详解
    目录前言实现1、引入依赖2、定义logback配置3、编写切面类4、测试前言 请问今天您便秘了吗?程序员坐久了真的会便秘哦,如果偶然点进了这篇小干货,就麻烦您喝杯水然后去趟厕所一边用...
    99+
    2022-11-13
  • SpringAOP实现日志收集管理功能(步骤详解)
    第一步引入必要的依赖 <dependency> <groupId>org.springframework.boot</grou...
    99+
    2022-11-13
  • 重做日志管理
    计算机操作的文件越大,系统的效率越低,因此,日志文件应该尽可能地小,但文件过小又会导致日志文件频繁切换,引发完全检查点,导致系统挂起 所谓的重做日志维护或修复,就是将有问题的重做日志组或日志成员删掉...
    99+
    2022-10-18
  • MySQL——innodb日志管理
    innodb日志管理机制:1、innodb存储引擎是支持事务ACID特性的,这个理论基本就是一个关系型数据库相关的数据恢复原形设计,包括日志、回滚、redo、并发控制、buffer pool等管理方面,内容...
    99+
    2022-10-18
  • MySQL之日志管理
    日志事务日志:transaction log错误日志:error log查询日志:query log慢查询日志:slow query log二进制日志:binary log中继日志:reley log命令日...
    99+
    2022-10-18
  • 简单了解mysql的日志管理
    本篇文章给大家主要讲的是关于mysql的日志管理的内容,感兴趣的话就一起来看看这篇文章吧,相信看完mysql的日志管理对大家多少有点参考价值吧。/etc/my.cnferror log   &nb...
    99+
    2022-10-18
  • Undo log日志详解
    今天和大家分享一下Undo log日志的知识点 1.什么是undo log? 撤销日志,在数据库事务开始之前,MYSQL会去记录更新前的数据到undo log文件中。如果事务回滚或者数据库崩溃时,可以利用undo log日志中记录的日志...
    99+
    2023-08-21
    mysql 数据库 java undo log
  • JAVA SpringBoot统一日志处理原理详解
    目录slf4j的使用解决多框架日志不统一问题SpringBoot如何处理日志关系slf4j的桥接原理根据slf4j桥接原理改造logger总结 ...
    99+
    2022-11-12
  • 详解Oracle控制文件及日志文件的管理问题
    目录一、控制文件的管理1、控制文件的概述2、控制文件的创建1、控制文件的重新建立3、控制文件的备份1、将控制文件备份为二进制文件2、将控制文件备份为文本文件4、控制文件的恢复5、添加多路复用的控制文件二、重做日志文件的管...
    99+
    2022-07-07
    Oracle控制文件管理 Oracle日志文件管理
  • mysql 日志分类详解
    前言 对于IT从业人员来说,日志是日常开发和问题排查过程中非常重要的信息,通过日志可以了解到很多有用的信息,很多奇怪的不好定位的问题,往往可以通过分析日志找到答案。 在mysql中,也提供了多种类型的日志,不同类型的日志其作用也不一样,本...
    99+
    2023-10-05
    mysql日志 mysql慢查询日志 mysql日志总结 mysql各类日志 mysql日志使用说明
  • 如何理解Linux 系统中的管理日志
    今天就跟大家聊聊有关如何理解Linux 系统中的管理日志,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在 Linux 系统上管理日志文件可能非常容易,也可能非常痛苦。这完全取决于你所...
    99+
    2023-06-05
  • 【Log日志】springboot项目中集成Log日志详解
    springboot项目中集成Log日志详解 一、Log日志介绍1.Log 日志组件主要作用及用途2.日志的级别Level级别控制 3.日志的输出Import3.1 快速使用3.2 日志文件输出3.3 自定义配置 4. ...
    99+
    2023-08-23
    spring boot java spring Log 日志
  • go语言日志实现详解(打印日志、日志写入文件和日志切割)
    目录Go语言内置的log包实现了简单的日志服务Logger标准logger的配置配置日志前缀(SetPrefix)配置日志输出位置创建新logger对象日志库级别runtime.Ca...
    99+
    2022-11-11
  • Linux syslog 系统日志管理
    Linux syslog 系统日志管理===============================================================================rsysl...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作