当前位置: 首页 > 知识库问答 >
问题:

如何设置log4j来记录违反JSR303验证的值?

韩宏朗
2023-03-14

我正在使用JSR303的HibernateValidator实现来验证程序中的一些实体,我需要记录不正确的数据。我可以拥有JSR303验证结果的ConstraintViolation列表,但它只包含失败验证的元数据。有问题的值本身在任何地方都不可用,我无法记录它们(我必须将违反约束的情况映射回实体,这很糟糕)。

我在Hibernate的ConstraintTree类中发现了一个跟踪日志,它记录了所有已验证的值,但这对我来说是有用的(我不知道哪一个失败了)。

是否存在触发记录失败验证值的神奇记录器名称?

共有1个答案

欧君之
2023-03-14

ConstraintViolation。getInvalidValue()不返回您需要的值吗?

BTW,Hibernate(自4.0.0起)和hibernate-validator(自4.3起)使用jboss日志而不是log4j

 类似资料:
  • 我有一个JavaWeb7项目,在该项目中,我希望在每个事件上,直接在支持bean中管理的实体实例上编写JSF组件值。只要添加一个JSR303验证约束,就可以很好地工作,比如在实体属性之一上添加。只要违反约束,就不再在具有约束的属性上设置值。没有根据NetBeans调试器调用setter;另一个属性工作很好,这使我相信我已经隔离了问题。我想在我想要的时候执行验证,因此,如果我想要的话,可以设置无效的

  • 问题内容: 说我有一个这样的班级: 现在,当涉及到打印此信息时,我希望能够打开和关闭不同类型的信息(参数,结果,花费的时间)。 使用日志记录级别进行区分的问题在于,更精细的粒度级别还包含了更粗糙的级别。 如何轻松设置? 问题答案: 您可以通过创建自定义日志记录类来设置不同的日志记录行为。 这是我的解决方案: 在Log4j.properties中设置 使用这些记录器时: 要使用这些记录器: 日志输出

  • 说我有一堂这样的课: 现在当涉及到打印这个信息时,我想要能够打开和关闭不同类型的信息(参数、结果、花费的时间)。 使用日志级别进行区分的问题是,粒度的较细级别也包含较粗的级别。 我怎样才能轻松地设置这个?

  • 问题内容: 我的故事: 我想做的事情像将行记录到文件的最简单的log4j记录器一样简单。我发现了几个具有某些功能的示例,但没有一个真正有效的基本通用示例,而没有一个解释每一行如何工作的示例。 题: 有人可以提供吗? 先决条件: 我已经知道将文件放在哪里,并且已经配置了log4j并可以用于控制台日志记录。 现在,我想登录到文件,并在程序运行后从文件系统中查找文件。 需要添加到现有文件的行是所需的输出

  • 你能提供一个链接到这些问题的解释(或者告诉我我做错了什么?)。我想我在谷歌搜索它失败了,因为互联网上充斥着关键词JSF和验证,对不起。

  • 我想从我的应用程序中提取DTO以将它们作为jar提供给层应用程序。 但我使用了Bean验证,所以DTO使用自定义约束进行注释。这种自定义注释对验证实现具有依赖性(链接)。 因此,我的DTO模块依赖于注释,而注释依赖于验证器,验证器依赖于DAO,然后是完整的核心应用程序。 有没有办法打破这种依赖循环?提供DTO jar而不依赖(或只提供bean验证API)的良好实践是什么? 谢谢