草庐IT

java - 未知异常的 e.printStackTrace() 出了什么问题

如果我在已知异常的情况下使用记录器,那么对于未知异常,e.printStackTrace()有什么问题?我总是被告知不要这样做-但没有给出理由下面的例子try{dostuff();}catch(AExceptionae){logger.error("aehappened");}catch(BExceptionbe){logger.error("behappened");}catch(CExceptionce){logger.error("cehappened");}catch(Exceptione){e.printStackTrace();} 最佳答案

java - 我可以在没有 Commons-logging.jar 的情况下使用 Apache HTTPClient 吗?

我正在尝试在我的项目中使用ApacheHTTPClient。这里不需要此应用程序的任何日志记录。那么我可以在没有Commons-logging.jar的情况下使用HTTPClient吗?否则会给我的分发包增加不必要的负担。 最佳答案 是的,你可以。正如Hannes所建议的——这是我自己的HttpClientmaven设置:org.apache.httpcomponentshttpclient4.3.1commons-loggingcommons-logging接下来,由于common-logging确实是一个运行时依赖项,您需要为c

java - Logback - 打印出调用日志方法的方法名

在我的示例中,我有以下代码:packagecom.example.somepackage;publicclassExample{publicstaticvoidmain(String[]args){org.slf4j.Loggerlogger=org.slf4j.LoggerFactory.getLogger(Example.class);logger.info("Examplemessage.");}}我希望它像这个最小示例一样输出到控制台:com.example.somepackage.Example.mainExamplemessage.我唯一需要的是:将模式放入logback.

java - 如何记录Springframework中方法所花费的时间?

在springframework中是否可以记录方法所花费的时间[selective|全部]自动。我的意思是自动地,我不想去每个方法并编写log.debug("...");东西。 最佳答案 AOP是您在这里需要的。AOP允许您在不修改原始代码的情况下向您的应用程序添加代码。SpringAOP更喜欢使用Proxy对象来完成此操作。Proxy对象使用DecoratorPattern包装原始Target对象并添加代码。Proxy被配置为实现原始Target对象的一个​​或多个接口(interface)。在这里,要为应用程序计时,想法是使用P

java - 获取用于记录的类名

要记录给定类的错误,我正在访问类名,如下所示:这是将类名作为字符串返回的“好”方法,因此它可以用于日志记录吗?privatestaticfinalStringCLASS_NAME=MyClass.class.getName();logger.error("Erroroccurredin"+CLASS_NAME); 最佳答案 Java8解决方案importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importjava.lang.invoke.MethodHandles;...priv

java - 什么是 AspectJ 中类型间声明的简短示例,它证明了该方法的有用性?

我首先想到使用ITD为一些不相关的情况定义privatestaticfinalLoggerlogger=...,但它看起来不像一个明显的改进,无法将其用作演示示例。是否有一些标准/建议的ITD用法示例,人们应该将其用于教学目的? 最佳答案 我想在Adam的回答中添加另一个示例。使用切面是改进软件模块化的一种方法,OOP也是,只是OOP是“垂直”应用的,而AOP是“水平”应用的。因此,虽然可以使用通知来“水平地”修改响应某些标准的所有方法的行为,但通知中的代码通常也需要一些数据,而ITD可以“水平地”添加这些字段,同时在同时包含在单个

java - 使用可执行 JAR 时指定 Log4j2 配置文件

我在使用可执行JAR文件时无法指定Log4j2配置文件位置。如果我将所有JAR分开,它工作正常,但是当我尝试将它们组合成一个可执行JAR文件时,出于某种原因,log4j2.xml文件没有从命令行中获取。我试过这两种指定位置的方法:java-Djava.libary.path=..\bin-cp..\config-jarMyApplication.jarjava-Djava.libary.path=..\bin-Dlog4j.configurationFile=..\config\log4j2.xml-jarMyApplication.jar这些都不起作用。我还尝试将包含配置文件的目录添

java - 如何使用 Java8s lambdas 改进日志记录机制

如何通过没有字符串连接的开销来改进您的日志记录机制?考虑以下示例:importjava.util.logging.Level;importjava.util.logging.Logger;publicclassLoggerTest{publicstaticvoidmain(String[]args){//getloggerLoggerlog=Logger.getLogger(LoggerTest.class.getName());//setlogleveltoINFO(sofinewillnotbelogged)log.setLevel(Level.INFO);//thislinewo

java - log4j 示例配置文件(属性文件)

开始使用log4j配置的最简单方法是什么? 最佳答案 将名为log4j.properties的文件放在类路径的根目录中:log4j.rootLogger=ALL,Consolelog4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.conversionPattern=%m%n不需要其他任何东西。Log4

java - 关闭 Hibernate c3p0 的日志记录

我正在使用Hibernate的c3p0连接池和标准Java1.4java.util.logging。启动时,我的应用程序在staticblock中设置它的日志记录属性(包括格式化程序和日志级别)。每次启动我的应用程序时,我都会看到以下内容:2011-04-1617-43-51[com.mchange.v2.log.MLog]INFO:{MLog.)MLogclientsusingjava1.4+standardlogging.2011-04-1617-43-51[com.mchange.v2.c3p0.C3P0Registry]INFO:{C3P0Registry.banner)Ini