小编Jam*_*son的帖子

log4j2:为异步日志记录设置Log4jContextSelector系统属性的位置

我试图在当前在自由配置文件服务器中运行的REST Web方法中设置异步日志记录(出于性能原因).

为此,我设置了以下属性:

System.setProperty("Log4jContextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");
Run Code Online (Sandbox Code Playgroud)

我的问题是,无论我在哪里这样做,有时它的工作和记录非常快,有时它不会.

我已经尝试了(a)包含所有REST Web方法(b)的类的构造函数,该方法在REST方法()中的REST方法之前调用,在REST方法本身的过滤器初始化方法(d)中调用

这些位置都不一致.

任何人都可以提供此行为的解释,如果可能的话,建议的方法来解决问题.

编辑:似乎在调用setProperty之前初始化了log4j.所以我需要做的是通过自由配置文件来设置属性.

java websphere-liberty log4j2

9
推荐指数
1
解决办法
7459
查看次数

关闭log4j2启动调试日志记录

如何关闭log4j2初始化时调试的调试日志记录?

这些东西:

2014-10-22 11:16:45,505 DEBUG Building Plugin [name = filter,class = org.apache.logging.log4j.core.filter.ThresholdFilter].正在搜索构建器工厂方法... 2014-10-22 11:16:45,505调试在类org.apache.logging.log4j.core.filter.ThresholdFilter中找不到构建器工厂方法.试着找一个工厂方法.2014-10-22 11:16:45,505 DEBUG仍在构建插件[name = filter,class = org.apache.logging.log4j.core.filter.ThresholdFilter].正在寻找工厂方法......

我通过eclipse从一个简单的Java应用程序调用log4j2.我的意思是:public static void main(String [] args){...}

xml配置的记录器部分是:

 <Loggers>
    <Root level="trace"/>

    <logger name="audit">
        <appender-ref ref="AUDITOUT"/>
        <appender-ref ref="DEBUGOUT"/>

        <appender-ref ref="ORACLEOUTINFO"/>
        <appender-ref ref="ORACLEOUTWARN"/>
        <appender-ref ref="ORACLEOUTERROR"/>
        <appender-ref ref="ORACLEOUTFATAL"/>
    </logger>

    <logger name="org.apache.log4j">
        <appender-ref ref="FILEOUT"/>
        <appender-ref ref="STDOUT"/>

        <appender-ref ref="ORACLEOUTWARN"/>
        <appender-ref ref="ORACLEOUTERROR"/>
        <appender-ref ref="ORACLEOUTFATAL"/>
    </logger>

    <logger name="jh.Runner2">
        <appender-ref ref="DEBUGOUT"/>
        <appender-ref ref="STDOUT"/>

        <appender-ref ref="ORACLEOUTTRACE"/>
        <appender-ref ref="ORACLEOUTDEBUG"/>
        <appender-ref ref="ORACLEOUTINFO"/>
        <appender-ref ref="ORACLEOUTWARN"/>
        <appender-ref ref="ORACLEOUTERROR"/>
        <appender-ref ref="ORACLEOUTFATAL"/>
    </logger>
 </Loggers>
Run Code Online (Sandbox Code Playgroud)

附加目的地:

 <Appenders> …
Run Code Online (Sandbox Code Playgroud)

java logging log4j log4j2

5
推荐指数
1
解决办法
5276
查看次数

将quartz数据源连接到spring boot bean

我已经在 Spring Boot 中使用 bean 建立了与数据库的连接。这一切在我们的正常应用程序中都可以正常工作。

@Bean(name="MoliDBConfig")
@Primary
public DataSource dataSource() throws SQLException {
Run Code Online (Sandbox Code Playgroud)

我想从quartz 连接到相同的数据源,但收到 JNDI 错误。(顺便说一句,值得注意的是,我已经通过手动提供配置详细信息成功地从quartz连接到数据源。请参阅下面quartz.properties中注释掉的代码。)

2019-03-19T10:51:52.342 + 00:00 [APP / PROC / WEB / 0] [OUT]错误2019-03-19 10:51:52.333 - oquJNDIConnectionProvider 126查找数据源时出错:需要在中指定类名环境或系统属性,或作为小程序参数,或在应用程序资源文件中: java.naming.factory.initial javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或作为小程序参数,或在应用程序资源文件:java.naming.factory.initial| 在 javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662) ~[?:1.8.0_202]| 在 javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313) ~[?:1.8.0_202]| 在 javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:350) ~[?:1.8.0_202]| 在 javax.naming.InitialContext.lookup(InitialContext.java:417) ~[?:1.8.0_202]| 在 org.quartz.utils.JNDIConnectionProvider.init(JNDIConnectionProvider.java:124) [quartz-2.3.0.jar!/:?]| 在 org.quartz.utils.JNDIConnectionProvider.(JNDIConnectionProvider.java:102) [quartz-2.3.0.jar!/:?]| 在 org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:995) [quartz-2.3.0.jar!/:?]| 在 org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1559) [quartz-2.3.0.jar!/:?]| 在 com.xxx.d3.moli.schedule.QrtzScheduler.scheduler(QrtzScheduler.java:52) [类/:?]| 在 com.xxx.d3.moli.schedule.QrtzScheduler$$EnhancerBySpringCGLIB$$aa50aa7b.CGLIB$scheduler$1() [类/:?]| 在 com.xxx.d3.moli.schedule.QrtzScheduler$$EnhancerBySpringCGLIB$$aa50aa7b$$FastClassBySpringCGLIB$$374ea1c1.invoke() [类/:?]| 在 org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) [spring-core-4.3.22.RELEASE.jar!/:4.3.22.RELEASE]| 在 org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358) [spring-context-4.3.22.RELEASE.jar!/:4.3.22.RELEASE]| 在 com.xxx.d3.moli.schedule.QrtzScheduler$$EnhancerBySpringCGLIB$$aa50aa7b.scheduler() [类/:?]

石英特性

# Configure …
Run Code Online (Sandbox Code Playgroud)

java datasource quartz-scheduler spring-boot

5
推荐指数
1
解决办法
4353
查看次数

ORA-00911: 使用 PreparedStatement 的无效字符错误

我正在尝试使用 Prepared Stmt 在 where 子句中传递订单号列表。我收到错误为 Invalid character 。使用下面的代码

        List<String> ordernolist = Arrays.asList(orderno.split(","));


        String sql = "select * from ORDER_"+Market+".MARC_ORD_UN_STS_T s,ORDER_"+Market+".MARC_ORD_LN_T l, "
                + "ORDER_"+Market+".MARC_ORD_T o ,ORDER_"+Market+".ORD_RLS_REL_T ort,ORDER_"+Market+".RLS_T rt,ORDER_"+Market+".RLS_LN_T rn "
                + "where RT.RLS_KEY=RN.RLS_KEY and O.MARC_ORD_KEY=L.MARC_ORD_KEY and L.MARC_ORD_LN_KEY=S.MARC_ORD_LN_KEY and "
                + "O.ORD_NO=ORT.ORD_NBR and ORT.CRM_ORD_NBR=RT.CRM_ORD_NBR and "
                //+ "S.MARC_ORD_STS_CD='500' and "
                + "RN.LN_QTY>0 and RN.ORIG_ORD_LN_NBR=L.ORD_LN_NBR and s.sts_qty>0 "
                + "and O.ORD_NO in (";
        for( String id : ordernolist ){
                    sql += "?,";
                }
                sql = sql.substring( 0, sql.length()-1  ) + ");"; …
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
1001
查看次数