草庐IT

java - LOG4J2 - 如何以编程方式创建文件附加程序?

我需要以编程方式设置文件附加程序。我想在log4j2.xml上设置我的附加程序,但我想在运行时(以编程方式)仅写入这些附加程序之一。示例:if(condition.equals("A")){//writelogonFile_1}elseif(condition.equals("B")){//writelogonFile_2}else{//writelogonFile_3}查看Internet上的各种教程,他们解释了如何在运行时以编程方式添加附加程序;有没有办法选择在运行时只有xml配置文件中定义的附加程序之一?第一个解决方案:我已尝试通过以下方式解决问题,但我对我的解决方案并不满意,因

java - 如何使 Spring Joda-Time 格式化程序在非标准语言环境下工作?

我正在使用Spring3.1和Joda-Time开发多语言应用程序.假设我有一个这样的命令对象:privateclassMyCommand{privateLocalDatedate;}当我使用英国或美国语言环境请求时,它可以使用相应的日期格式正确解析并绑定(bind)date而没有任何问题,例如分别为2013年10月21日和2013年10月21日。但是,如果我有一些像georgiannewLocale("ka")这样的语言环境,它不会绑定(bind)有效日期21.10.2014。所以我需要连接到Spring格式化程序,以便能够为每个语言环境提供我自己的格式。我有一个可以从语​​言环境解

java - 默认 log4j MDC 值

有谁知道如何使用log4j的配置xml为MDC中缺失的条目指定默认值?我在我的XML文件中定义了一个附加程序,如下所示:有问题的部分是来自MDC的订单ID(%X{orderID})。我四处搜索,只发现同一个线程的副本说了一些类似$${orderID:-DefaultValue}的内容,但这在这种情况下不起作用。当在没有订单ID的上下文中收到日志消息时,我需要能够将该值默认为0或-1或其他一些重要值 最佳答案 如果您在java代码中访问MDC对象,则可以通过在某些启动区域(例如,servletinit()方法)添加以下内容来初始化or

java - jooq 转换器 : from java. sql.Date 到 java.time.LocalDate

我试过写一个Converter但我无法让它适用于所有时区设置。想法:如果客户端代码有LocalDate,比如20-Aug-2014,并将其保存到数据库中,无论客户端时区是什么,它在数据库中都应该显示为20-Aug-2014。如果数据库包含2014年8月20日的日期,则无论客户端时区是什么,客户端都应收到2014年8月20日的LocalDate。我的测试:@TestpublicvoiddateConverter(){for(intoffset=-12;offset我的转换器:publicclassDateConverterimplementsConverter{@Overridepubl

java - 如何使用 Spring Boot/slf4j 在日志文件的名称中包含日期?

和SettingalogfilenametoincludecurrentdateinLog4j是同一个问题,但是如何应用到slf4j自带的SpringBoot中呢?应用程序属性spring.application.name=keywordslogging.file=logs/${spring.application.name}.log 最佳答案 如所述hereSpringBoothasaLoggingSystemabstractionthatattemptstoconfigureloggingbasedonthecontentoft

java - slf4j-log4j12 与 log4j 之间的区别

在项目的pom.xml中,我看到如下所示的依赖项org.slf4jslf4j-api1.7.5org.slf4jslf4j-log4j121.7.5log4jlog4j1.2.17有人可以告诉我slf4j-log4j12和log4j之间有什么区别吗? 最佳答案 Log4j1.2slf4j-log4j12提供了SLF4J和Log4j1.2之间的桥梁,以便SLF4J知道如何使用Log4j进行日志记录。您正在使用Log4j1.2。该版本的绑定(bind)由SLF4J项目维护。这是来自theSLF4Jdocs的摘要:SLF4Jsupport

java.time 和 JPA

java.time包中的LocalDateTime类是valuebasedclasses.如果我有一个实体使用这样的对象作为字段,我会遇到以下“问题”:基于值的类不应被序列化。但是,JPA实体必须实现接口(interface)Serializable。这个悖论的解决方案是什么?有人不应该将LocalDateTime用作JPA实体的字段吗?改用日期?这会令人不满意。这个问题是Sonar规则squid:S3437因此项目中有很多错误,因为我们从Date更改为LocalDateTime...由于使用基于值的类导致不兼容的解决方案:@EntitypublicclassMyEntityimple

java - 应使用哪种罗马化标准来改进 ICU4j 的阿拉伯语-拉丁语音译?

我们需要将阿拉伯文本音译为拉丁字符(不带变音符号)并将其显示给用户。我们目前正在为此使用IBMICU4j。API不能很好地将阿拉伯文本翻译成正确可读的拉丁字符。请引用以下示例:例子阿拉伯语文本:صدامحسينالتكريتيGoogle的音译输出:萨达姆·侯赛因·提克里蒂ICU4J的音译输出:ṣdạmḥsynạltkryty我们如何改进ICU4j库的音译输出?ICU4J为我们提供了编写自己的规则的选项,但我们目前陷入困境,因为我们团队中没有人懂阿拉伯语,也无法找到任何可以遵循的合适标准。 最佳答案 我花了4个小时研究任何其他来源来

java - Java EE 中的 log4j postgres

经过多次搜索,我终于认为我的问题的解决方案是问你。所以我的问题在于如何创建有关我的Web应用程序使用情况的日志。我找到了log4jjava库,但我不明白它是如何工作的。我必须在哪里创建配置文件?在哪里以及如何引用它?我可以创建一个连接到postgres并插入日志我的三个参数的类吗?这是我在网上找到的:./src/log4j/log4j.propertieslog4j.rootCategory=FATAL,CONSOLE#definitiondel'appenderconsolelog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

java - 如何为 jar 配置 log4j 日志记录?

我有一个项目A,其构建路径上有log4j.jar。我有许多具有以下形式的日志记录语句的类:Logger_log=Logger.getLogger(A..class);..._log.info("...");我正在将项目作为jar导出到另一个项目B。项目B已经有自己的log4jjar和它自己的.xml配置文件。我想配置A中的特定类以在不同的“级别”登录到控制台Apender。请问我该怎么做? 最佳答案 嗯,基本上,你不应该那样做。这样想:如果那样做,任何应用程序中包含的每个库都将托管自己的日志记录配置,很可能以非指定顺序覆盖应用程序中