运行我的应用程序时,我有时会收到错误too many files open.
运行ulimit -a报告限制为1024.如何将限制增加到1024以上?
编辑
ulimit -n 2048权限错误中的结果.
我有一个现有的应用程序,它针对log4j进行所有日志记录.我们使用了许多其他库,它们也使用log4j,或者记录Commons Logging,最终使用我们环境中的log4j.我们的一个依赖项甚至记录了slf4j,它也可以正常工作,因为它最终也会委托给log4j.
现在,我想为这个应用程序添加ehcache以满足一些缓存需求.以前版本的ehcache使用了commons-logging,它在这种情况下可以很好地工作,但是从版本1.6-beta1开始,它们已经删除了对commons-logging的依赖,而是用java.util.logging替换它.
不熟悉java.util.logging提供的内置JDK日志记录,是否有一种简单的方法可以将针对log4j发送到JUL的任何日志消息记录下来,因此我可以使用现有配置并设置任何日志记录来来自ehcache?
看看JUL的javadocs,看起来我可以设置一堆环境变量来改变使用的LogManager实现,也许可以用它来将log4j包装Logger在JUL Logger类中.这是正确的方法吗?
具有讽刺意味的是,当世界其他地方(大部分)使用第三方库时,图书馆使用内置JDK日志记录会引起如此头疼.
是否可以进行典型调用java.util.logging.Logger并使用SLF4J将其路由到Logback?这将是很好的,因为我不必逐行重构旧的jul代码.
EG,说我们有这条线:
private static Logger logger = Logger.getLogger(MahClass.class.getName());
//...
logger.info("blah blah blah");
Run Code Online (Sandbox Code Playgroud)
将其配置为通过SLF4J调用会很好.
我有关于jdk日志记录配置的问题.我有一个EJB(部署到glassfish),它使用JDK Logging来输出消息.因此我使用一个带有如下代码的命名记录器:
private static Logger logger = Logger.getLogger("org.imixs.workflow");
.....
logger.fine(" some info...");
....
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过将以下行添加到Glassfish的logging.properties文件中来为我的记录器配置loglevel:
.....
org.imixs.workflow.level=FINE
Run Code Online (Sandbox Code Playgroud)
但是如何为记录器指定输出文件?我想把名为'org.imixs.workflow'的记录器中的所有消息放入一个单独的文件中.这可能吗?
谢谢你的帮助