草庐IT

java - Log4j - 找不到日志文件

当我将一个应用程序部署到其他运行JRE1.7的计算机时,我遇到了崩溃的问题。当我在我的PC上的NetBeans内部(或者甚至直接从JAR文件)运行它时,一切都很好。但是在另一台计算机上,它会在执行期间的特定事件(按钮点击)上失败。因此,我了解了如何使用log4j库进行日志记录。这给了我一些关于我的应用程序中的问题的信息,并且日志记录在我的计算机上再次完美运行。但是当我将JAR文件部署到其他仅运行JRE(Java7Update17)的计算机时,我找不到任何日志文件的痕迹。这是我的log4j.properties文件:#Rootloggeroptionlog4j.rootLogger=IN

java - 如何使用 Logback 将 System.out 重定向到日志文件?

如何使用Logback捕获Java程序中的System.out消息?例如,我想使用这段代码:System.out.println("test:consoleouttofileinstead");...并将其输出捕获到文件中。这可以使用logback.xml配置文件来完成吗? 最佳答案 有一个小jar可以为您做这件事:http://projects.lidalia.org.uk/sysout-over-slf4j/index.html请务必阅读常见问题解答:http://projects.lidalia.org.uk/sysout-o

java - axis-wsdl4j 和 wsdl4j 之间的区别

以下库之间有什么区别?我简要比较了下载的类二进制文件,它们看起来是一样的。但为什么有多个名字? 最佳答案 axis:axis-wsdl4j似乎与wsdl4j:wsdl4j分布完全相同。查看发布到MavenCentral的版本wsdl4j和axis-wsdl4j看起来axis必须自己上传wsdl4j工件,因为wsdl4j没有将1.0和1.4之间的任何内容发布到MavenCentral,但在1.5.1之后停止这样做(两者都发布了1.5.1-axis早一点-但只有wsdl4j:wsdl4jartifact从那以后就看到了任何定期更新。就代

java - 出于好奇——为什么日志记录 API 不实现类似 printf() 的日志记录方法?

无论是java.util.logging、commons-logging、log4j,甚至是最新的slf4j和logback,这些API都没有提出方法,例如:voiddebug(Stringformat,Object...args);其中format是使用Formatter解析的字符串。相反,他们坚持使用MessageFormat。我知道它会与现有原型(prototype)冲突,所以为什么不使用debugf()或类似的方法,但为什么没有这样的方法,因为Formatter是和Java1.5一样古老?是否出于性能原因、向后兼容性...?(注意,我真的在谈论Formatter,即包括占位符,

java - Log4j : Creating/Modifying appenders at runtime, 日志文件重新创建但未附加

我想为特定方法调用MyMethod()创建并启用附加程序,其日志输出应该转到“logFilePath”处的文件。我不想在xml配置文件中包含这个appender,所以我想在运行时创建它。首先,我尝试在运行时修改记录器属性,然后调用activateOptions,例如。之前将级别设置为DEBUG并在finallyblock中将其设置为Off,以便仅在使用该方法时记录输出。那没有用。我的问题是appender每次都重新创建一个文件,而不是追加到同一个文件。尽管setAppend为真。我对log4j不是很熟悉,所以请随意提出替代方法。以下是解释我正在尝试的示例代码。privatestatic

java - py4j - 我将如何着手在 java 中调用 python 方法

我最近发现了py4j并且能够从python调用静态java方法。现在我想从java调用python方法。我找不到太多文档,所以这是我能想到的最后一个可能会告诉我是否可行以及如何实现的地方。 最佳答案 您可以通过implementingaJavainterfaceonthepythonside从Java调用Python方法.步骤是:在Java中创建一个接口(interface),例如py4j.examples.Operator在Python中,创建一个类并在该类内部创建一个带有“implements”字段的Java类。在Python中

Java 日志记录 : Log4j Version2. x:显示终端客户端调用方的方法(不是中间日志记录帮助程序方法)

以下3篇文章提供了有关如何使用中间日志记录助手并仍然让底层记录器从客户端方法向该日志记录助手报告(而不是将日志记录助手方法作为源报告)的答案:JavaLogging:showthesourcelinenumberofthecaller(notthelogginghelpermethod)Callinglog4j'slogmethodsindirectly(fromahelpermethod)Printingthe"source"classinalogstatementwithalog4jwrapper但似乎只提供Log4j1.2的答案,它提供了现已解散的:Category.log(St

java - Junit 测试日志语句

我有一个带有类foo的java8应用程序:importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;publicclassFoo{privatefinalLoggerlog=LoggerFactory.getLogger(Foo.class);publicStringsomething(){log.info("doingfootest");return"test";}}我正在为此编写一个JUnit(Junit4.11)测试用例:publicclassFooTest{privateFoofoo;@BeforepublicvoidsetUp(

java - 登录logback时如何处理disk full错误?

我正在使用slf4j+logback登录我们的应用程序。早些时候我们使用的是jcl+log4j,最近搬家了。由于我们应用中的日志量很大,在生产环境中有可能磁盘已满。在这种情况下,我们需要停止日志记录,应用程序应该可以正常工作。我从网上发现,我们需要轮询logbackStatusManager以查找此类错误。但这将为应用程序添加对logback的依赖。对于log4j,我发现我们可以创建一个Appender,它可以在这种情况下停止记录。这将再次导致应用程序依赖于log4j。有没有办法只使用slf4j来配置它,或者有任何其他机制来处理这个问题? 最佳答案

java - 如何不通过SLF4J直接使用Logback

我正在尝试调整一些logback功能(自定义Appenders等)。为了测试它,我想配置Logback并直接调用其日志记录方法,而无需通过sl4j。这个奇怪要求的原因是能够在其他SLF4J桥可用的环境中测试logback功能。所以我想做invokingJoranConfiguratordirectly时描述的事情没有引用SLF4J。 最佳答案 有一种方法可以找出答案。这是您如何配置LOGBack的示例//HerewecreatecontextLoggerContextloggerContext=newLoggerContext();