我正在将一个应用程序从log4j 1.2.17转换为2.16.0,在log4j2中,LogManager中似乎不再有setRepositorySelector()方法。我不能按原样使用Log1.x桥,因为该项目不符合迁移文档中列出的要求。
下面的功能是否有log4j2变通方法?我没有写原始代码,我只是在更新它。
//The "guard" is a simple object that protects against re-setting of the
//LoggerFactory by anyone but the one who set it first with a particular
//"guard". Basically, this would allow a container to set the LoggerFactory,
//but disallow applications running in the container from changing it. If
//the container holds a handle on the "guard" object, then it alone can
//change the LoggerFactory. If no one holds a handle on the "guard" object,
//then no one can change the LoggerFactory once it is set the first time.
Object guard = new Object();
try {
LogManager.setRepositorySelector(new ContextJNDISelector(), guard);
}catch(Exception e){
System.out.println("Exception, " + CLASS_NAME + ".contextInitialized(): " + e.getMessage());
//e.printStackTrace();
}
由于Log4j 2.x API可以有多个实现,因此存储选择器(RepositorySelector)被重命名为上下文选择器(ContextSelector),并移动到Log4jContextFactory。因此,您需要使用:
LogManager.setFactory(new Log4jContextFactory(new JndiContextSelector()));
备注:在任何(直接或间接)调用LogManager之前,必须调用上述代码。getLogger或类似方法。
这可以用来强制假设所收集的元素是不同的 但是,在我看来,java doc已经过时了。不能用了。问题是JDK是否为java开发人员提供了对类似功能的访问(类似的方法、常量等),还是应该由开发人员自己编写?
在这里学习我在Raku(neéPerl 6)的方法,非常好。但是我非常想念这个神奇的
我需要在控制台上打印大量的数据(大约100兆)。在IntelliJ上使用println是很失败的。有没有像console.log这样的替代方案,可以处理和显示这些数据而不会出现滞后和减慢? 提前道谢!
问题内容: 在Linux中开发内核模块时,不允许使用C标准库。 但是,如果我需要使用某些常用功能,例如,我应该去哪里? 问题答案: 无论Linux内核中没有实现什么,您都必须实现自己或从另一个开源内核模块中借鉴。但是,您会发现它是在内核中实现的。 请参阅内核API文档。特别是关于您的一般问题的“ 基本C库函数”部分,以及有关的特定问题的“ 字符串处理”部分。 您将要包含。 我不知道为什么内核API
本文向大家介绍基于Python中random.sample()的替代方案,包括了基于Python中random.sample()的替代方案的使用技巧和注意事项,需要的朋友参考一下 python中random.sample()方法可以随机地从指定列表中提取出N个不同的元素,但在实践中发现,当N的值比较大的时候,该方法执行速度很慢,如: numpy random模块中的choice方法可以有效提升随机
这是为什么BigQuery在小数据集上表现不好的问题的后续问题。 假设我有一个大约1百万行的数据集。在我们当前使用的数据库(mysql)中,聚合查询的运行速度非常慢,可能需要大约10秒的时间进行复杂的聚合。在BigQuery上,所需的初始化时间可能会使此查询花费约3秒,比mysql要好,但如果我们需要在1s或更短时间内返回查询,则此工具不适合此作业。 那么,我的问题是,在对中等大小的数据集(如10