如何使用 Spring Boot 配置 logback-access.xml

2024-03-12

我的 application.yml 是:

server:
  tomcat:
    accesslog:
      enabled: true
    basedir: my-tomcat

我们使用 spring boot 1.4.3.RELEASE,我想配置一个包含以下内容的 logback-access.xml (在 src/main/resources 下):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- always a good activate OnConsoleStatusListener -->
  <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%h %l %u %user %date "%r" %s %b</pattern>
    </encoder>
  </appender>

  <appender-ref ref="STDOUT" />
</configuration>

我可以在 my-tomcat 文件夹下看到 access_log.2017-01-03.log 文件,其中包含正确的访问日志,但在我的控制台上注意到,似乎未读取配置文件 logback-access.xml。

任何想法 ?

Eric


我是错误的还是 Spring Boot 本身不支持?

Source: https://github.com/spring-projects/spring-boot/issues/2609 https://github.com/spring-projects/spring-boot/issues/2609:

嘿,我正在尝试让 logback-access + tomcat 与 spring 一起使用 启动。有谁能够让这个开箱即用吗?或者是 需要设置一些必要的管道吗?

...

As a workaround, you can copy the access xml from the class path to the filesystem and run it there as part of your configuration class

Files.copy(this.getClass().getResourceAsStream("/logback-access.xml"),Paths.get("log-access.xml"),StandardCopyOption.REPLACE_EXISTING);
logbackValve.setFilename("log-access.xml");

Solution

Use spring-boot-ext-logback-access https://github.com/akihyro/logback-access-spring-boot-starter:

只需添加依赖项即可:

<dependency>
    <groupId>net.rakugakibox.spring.boot</groupId>
    <artifactId>logback-access-spring-boot-starter</artifactId>
    <version>2.7.0</version>
</dependency>

编辑 - logback 1.1.6+ 的其他解决方案

On the 上面提到的 spring-boot 问题 https://github.com/spring-projects/spring-boot/issues/2609,有人发了这样的帖子:

从 logback 1.1.6 开始,不需要任何解决方法即可将 logback-access 配置文件作为资源加载。参考:http://jira.qos.ch/browse/LOGBACK-1069 http://jira.qos.ch/browse/LOGBACK-1069

您所要做的就是:logbackValve.setFilename("log-access.xml");

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Spring Boot 配置 logback-access.xml 的相关文章

随机推荐

  • Jquery 在 onload 上执行 onchange 事件

    我有一个函数 可以在更改事件时运行后期操作 select marca change function var marca select marca option selected attr value select modello html
  • 从 webWorker 访问 localStorage

    WebWorker 可以访问 localStorage 吗 如果不是为什么不呢 从安全角度来看有问题吗 Web Worker 只能访问以下内容 XMLHttpRequest https developer mozilla org en US
  • java.net.SocketException:使用 HTTPConnection 重置连接

    我正在尝试使用一些外部 API 来获取一些数据 当数据量很小时 一切正常 但是当 API 返回的数据量很大时 我得到连接重置例外 下面的代码来自java类InterfaceHelper 我还在出现异常的行no处标记了注释 它在尝试从 Inp
  • 将 Backbone.sync 扩展为批量同步?

    应使用什么技术来实现 Backbone sync 的批量插入 更新 我想这取决于你的使用场景 以及你想改变多少调用代码 我认为你有两个选择 选项 1 不更改客户端 调用 代码 奇怪的是 注释Backbone sync 的来源 http ba
  • 模板,仅在头文件中编码?

    最近我了解到 如果我想使用模板 我应该只在头文件中实现代码 我知道有解决方案可以在 h 和 cpp 文件中执行此操作 但假设我不想这样做 我应该将所有代码写入 h 文件中吗 即使程序可能很大 这是一种编写代码的好方法吗 另外 只有 h文件
  • Django 全局查询集

    我想在我的 django 应用程序中有一个全局变量 用于存储我稍后在某些函数中使用的对象的结果列表 并且我不想多次评估查询集 我这样做 from app models import StopWord a list StopWord obje
  • 如何修复尝试使用 Git 推送时出现的“remote: fatal error in commit_refs”错误?

    当我尝试推动master托管于的分支https github com https github com I get 远程 commit refs 中出现致命错误 我该如何解决这个问题 就我而言 当我尝试推送时 GitHub 已经宕机了 只需
  • 在docker中使用overlay使用多主机网络功能是否需要swarm

    我已按照以下示例进行操作开始覆盖 https docs docker com engine userguide networking get started overlay 我有一个简单的查询 是否可以使用覆盖的多主机网络功能而无需创建sw
  • Gradle 错误:意外的输入:android.gms:play-services

    在运行时在 Gradle 中显示错误 错误 任务 app transformClassesWithInstantRunForDebug 执行失败 意外输入 ImmutableJarInput name com google android
  • 使用 Boost 序列化和反序列化 JSON

    我是 C 新手 序列化和反序列化类型数据的最简单方法是什么std Map using boost 我找到了一些使用的例子PropertyTree但它们对我来说很模糊 注意property tree将键解释为路径 例如放置 a b z 对将创
  • 使用 numpy 和/或 scipy 插值 3D 体积

    我非常沮丧 因为几个小时后我似乎无法在 python 中进行看似简单的 3D 插值 在Matlab中我所要做的就是 Vi interp3 x y z V xi yi zi 使用 scipy 的 ndimage map coordinate
  • 不明确的列名

    我有以下 SQL 它抛出错误 Ambigously column name id select tbl registration tbl ebp name as ebp name tbl Users id as user id tbl eb
  • 错误在 Rails 中显示两次

    我正在使用 Carrierwave 上传用户模型中的个人资料图片 如果用户尝试上传任何非图像文件 则必须引发错误 但是 该错误在屏幕上显示两次 请帮忙 用户模型代码类 User include CarrierWave MiniMagick
  • NVD3 工具提示内容不起作用

    我在我的项目中使用 NVD3 库 并且编写了以下代码 var chart nv models lineChart useInteractiveGuideline true margin top 50 right 50 bottom 50 l
  • 使用 webMessageEncoding 的 webHttpBinding:如何配置?

    我有一个 REST WCF 服务 它使用 webHttpBinding 并且配置如下所示
  • Dart的built_value库,如何在flutter中生成序列化器文件?

    我添加了built value 依赖项 我已经创建了一个文件serializers dart与序列化器字段 我已将我的数据类之一转换为所需的格式 我如何实际构建项目来生成serializers g dart file Thanks 在最近的
  • 灰度背景图像上重叠索引图像的颜色图和颜色条?

    我使用以下示例代码将索引图像覆盖在背景图像上 在下面的示例中 它是 RGB 但对于我的问题 背景是灰色 sacle 图像 那么我的问题是 如何在重叠图像的一侧显示颜色条 颜色条应该是重叠索引图像的颜色条 而不是背景图像的颜色条 如何固定重叠
  • 使用 TransientModel 设置和获取 Odoo 存储数据

    我正在尝试在 odoo 中存储配置数据 我需要存储 3 个对 account journal 的引用 模型是在数据库中创建的 视图显示在配置基本菜单中 当我按下 应用 按钮时 数据存储在数据库中 但当我重新加载菜单时 数据不会显示 代码使用
  • Docker:PhpMyAdmin 的上传限制为 2048KiB

    我有一个 docker compose yml 如下所示 webserver build docker php ports 80 80 links mysql volumes from app mysql image mysql 5 7 e
  • 如何使用 Spring Boot 配置 logback-access.xml

    我的 application yml 是 server tomcat accesslog enabled true basedir my tomcat 我们使用 spring boot 1 4 3 RELEASE 我想配置一个包含以下内容的