当我使用迭代器之后如何关闭资源。例如-如果我有这样的生成器方法:$fileHandler=fopen($filePath,'r');while($line=fgetcsv($fileHandler)){yield$line;}fclose($fileHandler);如何确保调用“fclose”。如果我调用生成器并且只从csv中获取前3行,则while循环将暂停,如果不调用下一个值,则不会调用“fclose”。如何确保文件处理程序将被关闭。 最佳答案 将它放在try、catch、finallyblock中。Finally总是会被执行
Java日志记录配置文件让我可以定义命名记录器的属性,例如name.heikoseeberger.heikotron.level=FINEname.heikoseeberger.heikotron.handlers=java.util.logging.FileHandler到目前为止,还不错。现在我想配置那个特定的FileHandler,例如带有特定的输出文件。不幸的是,我只知道如何配置“全局”FileHandler,它已经存在于配置文件中:java.util.logging.FileHandler.pattern=%h/java%u.logjava.util.logging.File
我正在创建一个允许循环访问文件的java.util.logging.FileHandler。当我的应用程序的多个实例运行时,将为应用程序的每个实例创建一个新的日志文件。我需要知道应用程序正在使用什么文件,因为我想将日志文件上传到我的服务器以供进一步审查。我如何知道某个FileHandler正在使用哪个文件? 最佳答案 最简单的方法是在文件名本身中放置某种标识符,即创建FileHandler时的pattern参数。由于这些是同一应用程序的实例,区分它们的一种方法是通过它们的进程ID,因此您可以将其作为模式的一部分。更好的方法是通过命令
我正在使用java.util.logging来记录我的应用程序的所有日志。直到最近,我一直在使用没有任何特定配置的日志记录工具。一切都按预期工作,所有日志都在控制台(stderr)中可见现在,我想为我的日志自定义配置。我希望日志显示在控制台上,但我也希望将它们写入文件中。我想出了以下解决方案:publicstaticvoidmain(String[]args){System.setProperty("java.util.logging.config.file","log.config");LoggerdefLogger=Logger.getLogger("fr.def");//alll
是否可以将java.util.logging配置为在“滚动”到使用新日志文件时压缩日志文件?例如,我的日志配置文件的摘录如下所示:java.util.logging.FileHandler.level=ALLjava.util.logging.FileHandler.pattern=/blah.logjava.util.logging.FileHandler.limit=10000000java.util.logging.FileHandler.count=5理想情况下,我希望将当前日志消息写入blah.log.0,同时保留blah.log.1.gz、blah.log.2.gz等。另请
我在tomcat的WEB-INF/classes目录中放置了一个logging.properties我想登录到两个不同的文件。例如:org.pkg1转到一个文件,org.pkg2转到另一个文件。我可以配置一个文件,但不能配置两个。这可能吗? 最佳答案 我终于明白了。在tomcat中,他们扩展了javautil日志记录(“JULI”)以启用此功能。这是我放在WEB-INF目录中的一个logging.properties文件,它最终完成了我想要的……:handlers=1console.java.util.logging.Console
目前我正在使用Javautil将日志记录到可以从java.util.logging.FileHandler.pattern配置的文件中。我想在日志文件名中附加一个时间戳。我还必须从java.util.logging.FileHandler.pattern属性中获取日志文件路径。 最佳答案 您可以重用Tomcat中的FileHandler,它会为文件名加上时间戳并每天滚动:http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/juli/FileHandler.htmlhttps:
我正在使用java.util.logging框架在我的JSF应用程序中实现日志记录。我已经成功地实现了这一点,但是我有一个新的要求,即每天轮换日志并创建一个新的日志文件。我不知道如何实现。任何关于实现的提示将不胜感激。谢谢。这是我配置记录器的方式:myLogger=Logger.getLogger("info.aio");fileHandler=newFileHandler("aioinfo.log",1048576,100,true);fileHandler.setFormatter(newSimpleFormatter());myLogger.addHandler(fileHand
我有以下logging.properties配置:1catalina.org.apache.juli.FileHandler.level=FINE1catalina.org.apache.juli.FileHandler.directory=/mnt/asd/tomcat_logs1catalina.org.apache.juli.FileHandler.prefix=catalina.2localhost.org.apache.juli.FileHandler.level=FINE2localhost.org.apache.juli.FileHandler.directory=/mn
我正在使用java.util.logging进行日志记录和跟踪。我如何在Java应用程序中动态设置应将日志写入的文件。 最佳答案 java.util.logging.FileHandler可能会为您完成它的工作。以下代码片段显示了一个简单示例,说明如何以编程方式设置日志记录目标:Loggerlogger=Logger.getLogger("my.logger.name");try{FileHandlerhandler=newFileHandler("application.log",true);logger.addHandler(h