草庐IT

java - 从库代码记录到应用程序日志的策略?

在我工作的地方,我们使用Log4j进行Web应用程序日志记录。log4j.jar处于应用程序级别,而不是容器级别。我们正在使用每日滚动文件附加程序。我们的log4j.properties文件根据应用程序包名称定义附加程序,因此只有我们应用程序包中及以下的类才会记录到我们应用程序的日志文件中。在我的应用程序中,我用一些支持类扩展了我们的框架。这些类不在应用程序的包中,因为它们不是我的应用程序独有的,最终将被制成一个jar库供其他应用程序使用。因此,我的日志语句不会被我的应用程序的附加程序获取,因此不会记录到我的应用程序的日志文件中。我想让我的jar中的类使用这些类记录到应用程序的日志文件

java - 通过 log4j 发送 JNI C stderr/stdout

我的java应用程序使用JNI调用用C编写的库。这个native库将错误记录到stderr,但我想通过我的log4j记录器以某种方式重定向错误流。这可能吗?C库是外部的-我没有源代码,所以无法更改它。谢谢 最佳答案 注意:我没有尝试过这个答案;YMMV.POSIX方法freopen将更改与流关联的基础文件。正如联机帮助页所述:“freopen()函数的主要用途是更改与标准文本流(stderr、stdin或stdout)关联的文件”。因此,您可以创建自己的JNI库,它只需将流重定向到一个文件中。但是,要使这项工作有几个严重的障碍:您需

java - 如何使用 Log4J 和 Apache Chainsaw 远程查看日志事件?

我有一个当前使用Log4J的JavaWeb应用程序用于记录。我想使用ApacheChainsaw远程查看和解析日志。到目前为止,我一直无法理解如何设置客户端(Chainsaw客户端)和服务器端(我的webapp中的log4j配置)以成功启用远程日志记录。这是我到目前为止尝试过的方法。服务器端log4j配置客户端链锯配置我创建了一个具有以下属性的新接收器name=SOCKETport=4445我承认我并不真正理解它是如何工作的。Chainsaw是否正在轮询远程服务器?远程服务器是否连接到Chainsaw并将事件推送给它?欢迎提供指导、指向简单教程的链接或替代工具。

java - 应用程序应将其日志存储在 Mac OS 中的什么位置?

我正在使用Java和Swing将一个用C#编写的Windows应用程序移植到MacOS。Windows应用程序将日志(环境信息、异常等)存储在文件C:\ProgramFiles\MyProgram\Logs\app.log中。有时我会要求用户将此文件发送给我以诊断问题。MacOS中日志的正确位置是什么?如果有多个可能的位置,我想使用用户更容易找到的位置。 最佳答案 通常我们将它存储在主文件夹和那个.log文件中的目录[带有应用程序的名称]System.getProperty("user.home")+System.getProper

java - 在 Selenium 中计时页面加载时间

我正在使用selenium在我的网站上记录一些性能测试。例如登录时间、查询时间等。我在SeleniumIDE上记录了一个示例脚本。我现在让它运行一个SeleniumRC(java)。publicvoidtestNew()throwsException{selenium.open("/jira/secure/Dashboard.jspa");selenium.selectFrame("gadget-10371");selenium.type("login-form-username","username");selenium.type("login-form-password","pw"

java - 将 Jersey 日志过滤器重定向到 logback

这个问题在这里已经有了答案:JerseyServerLogging/wLogback(3个答案)关闭8年前。我将Jersey用于我的Web服务,并为我的web.xml文件配置了用于请求和响应过滤的日志记录过滤器Jersey使用java.util.loggingAPI我想知道如何将日志重定向到logback显然这行不通:你能帮帮我吗?

java.lang.ClassNotFoundException : org. jboss.logging.Logger 错误

我有一个奇怪的问题。我有一个JMS客户端应用程序和MDB在JBossjboss-5.1.0.GA中配置。早些时候,我通过“配置构建路径”→“添加外部JAR”添加了JAR,一切正常。现在,我将所有JAR移至项目下的lib文件夹,并使用“配置构建路径”→“添加JAR”。现在,我在执行客户端程序时遇到以下异常:(Exceptioninthread"main"java.lang.NoClassDefFoundError:org/jboss/logging/Loggeratorg.jnp.interfaces.NamingContext.(NamingContext.java:160)atorg

java - LOG4J2 - 如何以编程方式创建文件附加程序?

我需要以编程方式设置文件附加程序。我想在log4j2.xml上设置我的附加程序,但我想在运行时(以编程方式)仅写入这些附加程序之一。示例:if(condition.equals("A")){//writelogonFile_1}elseif(condition.equals("B")){//writelogonFile_2}else{//writelogonFile_3}查看Internet上的各种教程,他们解释了如何在运行时以编程方式添加附加程序;有没有办法选择在运行时只有xml配置文件中定义的附加程序之一?第一个解决方案:我已尝试通过以下方式解决问题,但我对我的解决方案并不满意,因

java - 如何使用 Spring Boot/slf4j 在日志文件的名称中包含日期?

和SettingalogfilenametoincludecurrentdateinLog4j是同一个问题,但是如何应用到slf4j自带的SpringBoot中呢?应用程序属性spring.application.name=keywordslogging.file=logs/${spring.application.name}.log 最佳答案 如所述hereSpringBoothasaLoggingSystemabstractionthatattemptstoconfigureloggingbasedonthecontentoft

java - 为什么 Logback 是 Spring Boot 中的默认日志记录框架?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭去年。Improvethisquestion我尝试搜索Spring文档+互联网上的文章+来自Stackoverflow的问题,但我没有找到任何相关信息。对我来说,Log4J2的配置(尤其是模式)要简单得多,个人品味。此外,根据这些文章,我发现Log4J2的性能优于Logback:https://stackify.com/compare-java-logging-frameworkshttps://blog.overops.com/th