在 log4j JDBCAppender 中保存额外的值

2023-11-30

我想在日志表中存储额外的值,例如将用户 ID 存储在单独的列中。有人知道我该怎么做吗?

这是我的配置:

<appender name="jdbcAppender" class="org.apache.log4j.jdbc.JDBCAppender">
        <param name="URL" value="jdbc:sqlite:D:/download/mapLogic/sf_log.db" />
        <param name="user" value="" />
        <param name="password" value="" />
        <param name="driver" value="org.sqlite.JDBC" />
        <param name="sql"
            value="INSERT INTO sf_log(Message,Priority,Logger,Date) VALUES ('%m','%p','%c','%d{ABSOLUTE}')" />
    </appender>

谢谢


您可以将用户维护在MDC然后将其放入插入语句中。

MDC.put("user", userid);
try {
  doTheActualWorkWhichWillUseLogger();
} finally {
  // need to remove this to avoid causing leaks
  MDC.remove("user");
}

请注意,您不必为每个logger打电话,就一次,但我输入了remove为了说明如果要在 Servlet 中使用它,您必须清除MDC通话结束后再次进行。

然后是你的插入语句:

INSERT INTO sf_log (Message,Priority,Logger,Date, user) 
     VALUES ('%m','%p','%c','%d{ABSOLUTE}', '%X{user}')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 log4j JDBCAppender 中保存额外的值 的相关文章

  • 从文本文件中读取阿拉伯字符

    我完成了一个项目 在该项目中我读取了用记事本编写的文本文件 我的文本文件中的字符是阿拉伯语 文件编码类型是UTF 8 当在 Netbeans 7 0 1 中启动我的项目时 一切似乎都正常 但是当我将项目构建为 jar 文件时 字符以这种方式
  • 在 Java 正则表达式中获取多个模式的重叠匹配

    我有同样的问题这个链接 https stackoverflow com questions 18751486 matching one string multiple times using regex in java 但有多种模式 我的正
  • 迭代函数可以调用自身吗?

    当观看下面的 MIT 6 001 课程视频时 讲师在 28 00 将此算法标记为迭代 但是 在 30 27 他说这个算法和实际的 递归 算法都是递归的 该函数正在使用基本情况调用自身 那么这次迭代情况如何 private int itera
  • Spring中的ProxyFactoryBean

    有人可以解释一下吗代理工厂Bean http static springsource org spring docs current javadoc api org springframework aop framework ProxyFa
  • 无法访问“不安全”java方法的java表达式语言

    我正在开发一个项目 让用户向服务器提交小 脚本 然后我将执行这些脚本 有很多脚本语言可以嵌入到Java程序中 例如mvel ognl uel clojure rhino javascript等 但是 据我所知 它们都允许脚本编写者调用Jav
  • Proguard - 找不到任何超级类

    我收到此错误 Unexpected error while performing partial evaluation Class org apache log4j chainsaw Main Method
  • 插入时的 iBatis 判别器

    我有一个抽象类Example以及与之相伴的具体子类 我使用鉴别器来提取数据out数据库的 像这样
  • 用于层次结构树角色的 Spring Security / Java EE 解决方案

    我知道 Spring Security 非常适合标准角色和基于权限的授权 我不确定的是这种情况 系统中管理着 10 000 名员工 员工被组织成组织结构图 跨部门的谁向谁报告的树 其中一些员工是用户 这些用户仅被允许访问其职责范围内的员工
  • 嵌套字段的 Comparator.comparing(...)

    假设我有一个这样的域模型 class Lecture Course course getters class Course Teacher teacher int studentSize getters class Teacher int
  • 使用单独的线程在java中读取和写入文件

    我创建了两个线程并修改了 run 函数 以便一个线程读取一行 另一个线程将同一行写入新文件 这种情况会发生直到整个文件被复制为止 我遇到的问题是 即使我使用变量来控制线程一一执行 但线程的执行仍然不均匀 即一个线程执行多次 然后控制权转移
  • HTTP 状态 405 - 此 URL java servlet 不支持 HTTP 方法 POST [重复]

    这个问题在这里已经有答案了 我无法使页面正常工作 我有要发布的表单方法和我的 servlet 实现doPost 然而 它不断地向我表明我并不支持POST方法 我只是想做一个简单的网站并将值插入到我的 MySQL 数据库中 type Stat
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 如何减去两个 XmlGregorianCalendar 对象来创建一个 Duration 对象?

    我想计算两个时间之间的差值XmlGregorianCalendar对象 从而创建一个Duration object 但我还没有找到执行减法的干净方法 你会怎么做 那应该是 DatatypeFactory newDuration xgc2 t
  • 如何制作一个makefile只用于编译一些java文件?

    我有三个java文件 名为A java B java C java A将创建对象B B将创建对象C 但我以前从未构建过makefile 有谁可以帮我构建一个 makefile 来编译这三个 java 文件吗 我应该使用什么工具来制作 mak
  • Collections.sort(list) 和 list.sort(Comparator) 之间的区别

    有什么理由让我应该选择Collections sort list 方法而不是简单地调用list sort 内部Collections sort只是调用sort的方法List无论如何 上课 令人惊讶的是几乎每个人都告诉我使用Collectio
  • Axis2 错误:要输出的文本中的空白字符 (0x4) 无效

    我创建了一个 Java 客户端 使用 Axis2 1 7 6 作为代码生成器与 SOAP Web 服务进行交互 问题在于客户端的某些输入抛出异常并显示以下消息 org apache axis2 AxisFault Invalid white
  • 受信任的 1.5 小程序可以执行系统命令吗?

    如果是的话 这个能力有什么限制吗 具体来说 我需要以 Mac OSX 为目标 我以前用过这个在 Windows 系统上启动东西 但从未在 Mac 上尝试过 public void launchScript String args Strin
  • 为什么java.lang.Cloneable不重写java.lang.Object中的clone()方法?

    Java 规范java lang Cloneable接口将自身定义为表示扩展它的任何对象也实现了clone 休眠的方法java lang Object 具体来说 它说 一个类实现了Cloneable接口来指示java lang Object
  • 决策树和规则引擎 (Drools)

    In the application that I m working on right now I need to periodically check eligibility of tens of thousands of object
  • Java中单例的其他方式[重复]

    这个问题在这里已经有答案了 只是我在考虑编写单例类的其他方法 那么这个类是否被认为是单例类呢 public class MyClass static Myclass myclass static myclass new MyClass pr

随机推荐

  • 如何在 C++ 中从二进制文件中删除部分

    我想使用 C 从二进制文件中删除部分 二进制文件大约有 5 10 MB 左右 我想做的事 搜索 ANSI 字符串 something 一旦找到这个字符串 我想删除接下来的n个字节 例如下面的1MB数据 我想删除这些字符 而不是用 NULL
  • Linq to XML(Base64 编码)

    我必须将 PDF 转换为 Base64 编码并将其写入 XML 文件中的元素 我已经得到了 Base64 编码的字符串 很长 很大 但我工作的规范如下 选择此选项是为了确保 XML 文件可以在没有任何潜在风险的情况下显示和验证 由于处理原始
  • 在 Gnome 或 KDE 中以编程方式在桌面上移动应用程序窗口

    我想使用 C 程序在桌面上重新定位应用程序窗口 我应该如何去做 我需要针对这两种情况的解决方案 当我拥有想要移动的应用程序的源时 通过编写外部程序来移动其他应用程序的窗口 外部 Bash 脚本 xdotool search onlyvisi
  • 如何使用c#使用Youtube api登录程序?

    有this文档 可用的 所以我用了 YouTubeRequestSettings settings new YouTubeRequestSettings Appname devkey textBox1 Text textBox2 Text
  • 使用 mkmap 加载地图时显示标题

    我可以在 iphone 应用程序项目中显示地图 并将图钉放置在我想要的位置 但我希望在视图加载时显示标题和副标题 这是我正在使用的代码 我以为放入 mapView selectAnnotation 注释动画 是 会起作用 但事实并非如此 有
  • 在调试时使用反汇编语言在什么情况下有用

    我有以下基本问题 何时我们应该在调试中涉及反汇编 如何解释反汇编 例如下面每个段代表什么 00637CE3 8B 55 08 mov edx dword ptr arItem 00637CE6 52 push edx 00637CE7 6A
  • 在 PHP 中如何清除 WSDL 缓存?

    在通过php info 保存 WSDL 缓存的位置 tmp 但我不一定知道删除所有以 WSDL 开头的文件是否安全 Yes I should能够删除所有内容 tmp 但我不知道如果我删除所有 WSDL 文件还会产生什么影响 您可以安全地删除
  • C# 根据变量的内容调用方法

    如何根据变量的内容调用方法 ex String S Hello World String Format ToUpper String sFormat s Format resulting in HELLO WORLD 这样我就可以在其他时间
  • 使用 Plink 执行 (sudo) 子命令

    我正在尝试从 Window PowerShell 命令 Linux 机器 这些命令取决于之前命令的失败 通过 因此 我必须将所有命令放在一起 我尝试了多种将命令组合在一起的方法 但最后我只收到第一个命令的输出 PS C Users sams
  • iOS 更新至 10.3.1 破坏了 HTML 输入元素

    我们有一个主要由 iPad 在现场使用的网站 不是一个应用程序 大小适合在 iPad 上使用 显然刚刚发布的更新导致了输入问题 我们有一个 HTML 输入 用于允许他们从保存的图片中进行选择
  • React VR 组件和本机模块代码之间的持久桥梁

    我试图让浏览器将一些 DOM 事件发送到 React VR 组件中 我得到的最接近的是使用 本机模块 的代码 客户端 js const windowEventsModule new WindowEventsModule function i
  • 为什么我的 GUI 看起来总是不正确?

    在 Mac 上使用 Java 中的 Netbeans GUI 构建器构建 Netbeans 中的 GUI 如下所示 当我点击预览时 看起来还不错 但有一些小变化 最后 当我运行它时 它看起来像这样 糟糕 我认为这与 Java 的 外观和感觉
  • Highcharts - 如何在日期时间 x 轴上居中标签?

    我很难弄清楚如何在 Highcharts 中的日期时间 x 轴上居中标签而不使用类别和 tickPlacement 因为 tickPlacement 仅适用于类别 我的轴是动态创建的 因此我不能简单地设置 x 偏移或填充 因为这会导致不同间
  • bv-enable-int2bv-传播选项

    set option bv enable int2bv propagation true 在线工作 但是 我的本地版本对此有所抱怨 说 错误 第 1 行第 43 列 未知参数 bv enable int2bv propagation 这是一
  • Firebase 身份验证自定义声明不会传播到客户端

    我有一个 UID 1 的用户 其中自定义声明设置为 frompos true 我通过以下方式从 ADMIN SDK for java 向该用户设置新的自定义声明 Map
  • Neo4j如何避免超级节点

    在我的 Neo4j 项目中我有Role and Permission代表用户角色和权限的实体 每个User系统中的内容与适当的角色和权限集有关系 I think Role and Permission是某种超级节点 从性能的角度来看 它们将
  • android循环出现问题-无法将值放入hashmap

    这个问题困扰了我很长时间 我使用了一个叫bmob的云数据库 我发现我可以成功获取我想要的数据 但是 循环中可能会出现一些错误 我只能获取最后选择的项目的信息 附注我使用一个名为 Playlist 的数组列表来存储计算数据 我将使用该数据在下
  • 无法找出一个函数来返回对存储在 RefCell> 中的给定类型的引用

    其中大部分是样板文件 作为可编译的示例提供 向下滚动 use std rc Rc Weak use std cell RefCell use std any Any AnyRefExt struct Shared example int s
  • 检查 Windows 服务状态 - 我需要什么权限

    我想检查不同远程服务器上的一些 Windows 服务状态 如下所示 ServiceController sc new ServiceController MyWindowsService COMPUTER NAME var status s
  • 在 log4j JDBCAppender 中保存额外的值

    我想在日志表中存储额外的值 例如将用户 ID 存储在单独的列中 有人知道我该怎么做吗 这是我的配置