gpt4 book ai didi

java - 来自主参数查找的 JDBCAppender tableName

转载 作者:行者123 更新时间:2023-12-01 18:55:12 26 4
gpt4 key购买 nike

我的应用程序中有一个 JDBCAppender,我想为其设置 main argument lookup 中的 tableName 参数。 。原因是我的数据库表可以选择有一个前缀,所以我从应用程序中的配置文件中读取它,并且我想在运行时将其应用到附加程序。

    <JDBC name="TaskLogJDBC" tableName="${main:1}LogEvents">
<ConnectionFactory class="my.package.name.ConnectionFactory" method="getConnection"/>
<Column name="created_on" isEventTimestamp="true"/>
<Column name="lvl" pattern="%level"/>
<Column name="logger" pattern="%logger"/>
<Column name="message" pattern="%message"/>
<Column name="throwable" pattern="%ex{full}"/>
</JDBC>

这是我在 Main.java 中使用的参数:

MainMapLookup.setMainArguments(new String[] { "--prefix", tablesPrefix });

不幸的是,这似乎不起作用。 JDBCAppender 继续将 tableName 参数逐字读取为 ${main:0}LogEvents,而不是 prefix_LogEvents。我跟踪它,我认为 JDBCAppender 配置读取发生在调用 MainMapLookup.setMainArguments() 之前。这是一个错误吗?

环境变量查找是一个选项,但我现在想避免它。还有其他选择吗?

最佳答案

尝试:

static{
MainMapLookup.setMainArguments(new String[] { "--prefix", tablesPrefix });
}

关于java - 来自主参数查找的 JDBCAppender tableName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59679618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com