Log4j JDBCAppender 记录堆栈跟踪

2023-12-14

Using org.apache.log4j.jdbc.JDBCAppender,我怎样才能获得记录的stracktracewarn and error进入PatternLayout.

我正在记录像

logger.warn("warning description", e);
logger.error("error description", e);

我将字符串描述放入表中,但 Throwable 的堆栈跟踪现在在哪里。我可以通过以下方式访问另一个参数吗PatternLayout。目前我正在使用

"INSERT INTO app_logs (app, log_date, log_level, location, loc, message) VALUES ('my-apps-name', '%d{ISO8601}','%p', '%C.java', '%C{1}.java:%L', '%m')" 

到一个表中

TABLE `app_logs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `app` varchar(255) DEFAULT NULL,
  `log_date` varchar(255) DEFAULT NULL,
  `log_level` varchar(255) DEFAULT NULL,
  `location` varchar(255) DEFAULT NULL,
  `loc` varchar(255) DEFAULT NULL,
  `message` text, 
  PRIMARY KEY (`id`)
)

我找到了解决方案。

更换PatternLayout类与EnhancedPatternLayout class.

org.apache.log4j.EnhancedPatternLayout

您还需要包括apache-log4j-额外依赖项

Or 将其包含在你的 pom 中:

<dependency>
  <groupId>log4j</groupId>
  <artifactId>apache-log4j-extras</artifactId>
  <version>1.1</version>
</dependency>

您现在可以访问 %throwable

%throwable{short} or %throwable{1}将输出堆栈的第一行 痕迹。throwable{none} or throwable{0}将抑制堆栈跟踪。%throwable{n}如果是正整数,将输出 n 行堆栈跟踪 或者如果是负整数则省略最后 -n 行。

我添加到我的表中,

TABLE `app_logs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `app` varchar(255) DEFAULT NULL,
  `log_date` varchar(255) DEFAULT NULL,
  `log_level` varchar(255) DEFAULT NULL,
  `location` varchar(255) DEFAULT NULL,
  `loc` varchar(255) DEFAULT NULL,
  `message` text,
  `throwable` text,
  `stacktrace` text,
  PRIMARY KEY (`id`)
)

并更新了我的模式来填充这些列。

"INSERT INTO app_logs (app, log_date, log_level, location, loc, message, throwable, stacktrace) VALUES ('my-apps-name', '%d{ISO8601}','%p', '%C.java', '%C{1}.java:%L', '%m', '%throwable{short}', '%throwable{100}')"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Log4j JDBCAppender 记录堆栈跟踪 的相关文章

  • 在 Java 1.7.0 下运行的 SQL-Server (MSSQL-JDBC 3.0) 中的日期列检索为过去 2 天

    当使用 SQLServer2008 从 SQLServer2008 检索 DATE 类型的列时 出现奇怪的效果在官方 Oracle JDK 1 7 0 下运行时 主机操作系统是Windows Server 2003 所有日期列均检索为two
  • 在准备好的语句中设置数组,抛出 java.sql.SQLFeatureNotSupportedException

    我有一个字符串列表 我想将其设置为准备好的语句中的参数 这里的问题和答案看起来很简单 如何使用数组列表作为准备好的语句参数 https stackoverflow com questions 17842211 how to use an a
  • 调用过程默认值而不将值绑定到 Jdbc 中的参数

    我正在尝试打电话PL SQL为其某些参数定义了默认值的过程 我正在这样做使用CallableStatement in JDBC 该过程有大量已定义默认值的参数 我不想在 Java 代码中显式设置默认值 这样做会使维护代码变得更加困难 如果
  • 如何使用 JDBC 将大型(或至少是重要的)BLOB 放入 Oracle 中?

    我正在开发一个应用程序来执行一些批处理 并且希望将输入和输出数据作为文件存储在 Oracle 数据库的 BLOB 字段中 Oracle版本是10g r2 使用如下的PreparedStatement setBinaryStream 方法会将
  • AWS EMR PySpark 连接到 mysql

    我正在尝试使用 jdbc 通过 pyspark 连接到 mysql 我可以在 EMR 之外完成此操作 但是当我尝试使用 EMR 时 pyspark 无法正确启动 我在我的机器上使用的命令 pyspark conf spark executo
  • log4j 中的异常深度

    我的 Myfaces 2 应用程序遇到实例化异常 但是通过 log4j 打印的异常会切断堆栈跟踪的其余部分 这是我所看到的 javax faces FacesException java lang InstantiationExceptio
  • Tomcat 连接池与准备好的语句缓存

    从 DBCP 连接池升级到 Tomcat 自己的实现 基于优秀的比较here http tomcat apache org tomcat 7 0 doc jdbc pool html Introduction 我有点困惑为什么他们放弃了这两
  • 获取 Oracle JDBC 连接上的 MySQL 错误堆栈跟踪

    我在使用连接字符串进行 Oracle JDBC 连接时遇到非常奇怪的错误 我将用户名指定为 sys 应该是 sys as sysdba 理想情况下 它应该来自 ojdbc6 jar 但就我而言 它来自 mysql connector jav
  • 如何在java中执行复合sql查询?

    如何执行以下查询并通过准备好的语句检索结果 INSERT INTO vcVisitors sid VALUES SELECT LAST INSERT ID 有没有办法同时执行这两个语句 我尝试执行以下操作 Connection con Db
  • 在 Android 中使用 SQL (JDBC) 数据库

    在旧的 Java 应用程序中 我使用以下代码连接到 SQL 数据库并将其用于某些查询 private Connection dbConnection null System setProperty derby system home C C
  • java.sql.SQLException:在结果集开始之前[重复]

    这个问题在这里已经有答案了 我已尝试使用以下代码来检索存储在数据库中的图像 我创建了一个名为image db包含一个名为的表image details 该表有两个字段 id and image path两者都是类型mediumblob 我在
  • 自动检测log4j静态初始化错误的方法

    请注意 这更像是 Bash 问题 而不是 Java 问题 请参阅下面的注释 在每个类中配置log4j时 我们执行以下操作 public class Example private static final Logger log Logger
  • BoneCP 和 Derby - 如何正确关闭

    I have BoneCP CONNECTION POOL CONNECTION POOL getConfig setJdbcUrl jdbc derby database shutdown true Connection connecti
  • H2控制台看不到JAVA创建的表

    我已经从以下位置下载了 H2 控制台http www h2database com html download html http www h2database com html download html我已经在我的中配置了 URLjdb
  • 使用 JDBC 连接到 PostgreSql 的本地实例

    我在 Linux 机器上有一个正在运行的 PostgreSql 本地实例 当我使用psql来自 shell 的命令我成功登录 没有任何问题 我需要通过 JDBC 连接到 PostgreSql 但我不知道我到底应该传递什么url参数为Driv
  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • Proguard - 找不到任何超级类

    我收到此错误 Unexpected error while performing partial evaluation Class org apache log4j chainsaw Main Method
  • 如何计算选择查询的最佳获取大小

    在 JDBC 中 默认获取大小为 10 但我想当我有一百万行时 这不是最佳获取大小 据我所知 获取大小太低会降低性能 但如果获取大小太高也会降低性能 我怎样才能找到最佳尺寸 这对数据库端有影响吗 它会占用大量内存吗 如果您的行很大 请记住
  • logback的“谨慎模式”是如何实现的?

    The 审慎模式 http logback qos ch manual appenders html prudentlogback 中的序列化所有 JVM 之间的 IO 操作 写入同一文件 可能运行在不同的主机上 在其他日志记录框架中 如果
  • 您是否见过 Log4j 中基于 NDC 记录到单独文件的附加程序? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们只有极少数客户 少于 50 个 我们希望每个客户都有自己单独的日志文件 所有服务器端日志记录信息都存

随机推荐

  • Mysqli DELETE QUERY 在 PHP 脚本中不起作用

    我使用下面的代码从表中删除一个条目 我想做的是检查是否从表中删除了任何值 如果删除了一个值 脚本应该打印成功 否则为 false 这是我所实现的 直到现在请帮忙
  • 将声音从左向右移动

    如何将 iPhone 耳机的声音从左移到右 我认为你想要 AVAudioPlayer 的 pan 属性 检查AVAudioPlayer 文档 从 pan 属性 通过设置这个属性你可以 将声音放置在立体声场中 值 1 0 为全左 0 0 为
  • Matlab z buffer 用于模拟kinect

    我们正在尝试模拟简单的 kinect 输出 我已经在 Matlab 中渲染了一个三角形网格 现在我想获取渲染形状的图形 轴的深度缓冲区 我如何在 matlab 中做到这一点 即如何访问图形的深度缓冲区 你可以尝试this
  • IIS 上的 .htaccess 或 .htpasswd 等效项?

    有谁知道 IIS 是否有相当于 htaccess 和 htpassword 的文件 我被要求将一个应用程序迁移到 IIS 该应用程序使用 htaccess 根据 htaccess 文件的内容控制对各种 URL 中的文件集的访问 我进行了谷歌
  • 如何让.net cf中的所有进程都运行

    我想从我的应用程序中获取 Windows Mobile 6 5 中所有正在运行的应用程序的列表 谁能告诉我如何为CF做到这一点 你必须 P 调用工具帮助 API 曾经有一篇 MSDN 文章对此进行了介绍 将其全部放入此处的帖子中有点长 但也
  • 如何根据用户的选择动态生成SQL查询?

    我需要创建一个 GUI 用户可以使用它选择多个属性 这些属性将用于查询数据库以找到合适的人 我正在寻找如何根据用户的选择动态生成数据库查询的想法 查询将包含多个字段 但为了了解这个想法 我将仅包含以下三个字段作为示例 职业 可以有 0 到
  • Spring cloud Stream中的事务

    Problem 我正在尝试逐行读取一个大文件并将消息放入 RabbitMQ 中 我想在文件末尾提交rabbitMQ 如果文件中的任何记录是坏的 那么我想撤销发布到队列的消息 技术 弹簧靴 春云流水 RabbitMQ 您能帮我实现这个过渡吗
  • 在.NET 中读取/保存 PixelFormat.Format48bppRgb PNG 位图?

    我已经能够使用以下 C 代码创建 Format48bppRgb PNG 文件 来自一些内部 HDR 数据 Bitmap bmp16 new Bitmap viewer Width viewer Height System Drawing I
  • 如何在 Linux 中从 C 获取当前时间(以毫秒为单位)?

    如何获取 Linux 上的当前时间 以毫秒为单位 这可以通过使用来实现POSIX clock gettime功能 在当前版本的 POSIX 中 gettimeofday is 标记为过时 这意味着它可能会从规范的未来版本中删除 鼓励应用程序
  • C - 获取用popen打开的进程的PID

    我有一个用 C 编写的程序 它使用 popen 打开另一个程序 我想获取该程序的 pid 或某种处理程序 以便在一定时间限制后 或者在它超出某些 ram 和 stdout 限制时杀死它 我认为这必须用ptrace来完成 它需要PID 但我不
  • x86处理器如何在引导加载程序加载GDT后立即获取指令?

    在为 x86 编写的典型简单引导加载程序中 我们有以下代码来加载 GDT 并执行远跳转 请注意 在执行以下代码之前 CS 为 0x0 lgdt gdtdesc movl cr0 eax orl 1 eax movl eax cr0 Jump
  • 一对多关系中外键始终为空 - Spring Boot Data with JPA

    我有两个实体类Country and Language具有双向一对多关系 下面是实体类 Entity Table name COUNTRY public class Country Id GeneratedValue Column name
  • 有没有办法为 TestNG suite.xml 中包含的方法指定参数?

    我正在为基于 TestNG 的自己的测试框架编写 suite xml 我的 xml 文件如下所示
  • C++ 关键字 auto 有什么作用? [复制]

    这个问题在这里已经有答案了 我最近在c 中遇到了关键字auto 在代码中 auto maxIterator std max element spec 0 spec sampleSize float maxVol maxIterator No
  • Java 构造函数具有比其类更广泛的访问级别

    Java规范允许具有默认访问权限的类对其构造函数进行公共访问 它的目的是什么 因为它不能在其包之外引用 我想将此作为评论 但由于评论中不允许使用代码标签 关于您对 CristopheD 的回答的评论 package bob class My
  • 为什么自定义元素不支持将属性作为对象?

    我试图将自定义元素中的数据属性作为对象传递 但在接收 AttachedCallback 方法内部时以字符串形式获取值 object object 那么任何人都可以帮助我弄清楚如何将属性作为自定义元素 Web 组件 中的对象获取 代码示例
  • 如何使用用户脚本加载共享 Web Worker?

    我想用用户脚本加载共享工作者 问题是用户脚本是免费的 并且没有托管文件的商业模式 我也不想使用服务器 即使是免费的服务器 来托管一个小文件 不管 我尝试过这个我 当然 得到了同源策略错误 Uncaught SecurityError Fai
  • 释放未初始化的指针是否会导致未定义的行为?

    如果您有一个未初始化的指针 并且错误地尝试释放它 这是否会导致未定义的行为 Like int main void char string free string return 0 释放未初始化的指针是否会导致未定义的行为 Yes 然而 释放
  • 加速循环中计算文档类型的 plpgsql?

    有没有一种方法可以加快我们的 plpgsql 函数的速度 该函数可以在一个循环执行的查询中对某些类型的文档进行计数 全部包含在一个查询中 validador select count id doc from webdte doc tip c
  • Log4j JDBCAppender 记录堆栈跟踪

    Using org apache log4j jdbc JDBCAppender 我怎样才能获得记录的stracktracewarn and error进入PatternLayout 我正在记录像 logger warn warning d