草庐IT

java - Spring 启动 : LoggingApplicationListener interfering with Application Server logging

SpringBoot使用LoggingApplicationListener自动初始化底层日志系统。如果我正在开发的应用程序独立或独立运行,这是一件好事。然而,我正在开发一个将部署到WSO2应用服务器的Web应用程序,它提供统一的日志记录(使用log4j),具有中央日志级别管理(在运行时通过Web界面)、业务报告等功能。如果我“按原样”使用SpringBoot,它会完全自行记录所有内容。我的第一个镜头是删除spring-boot-starter-logging并手动添加slf4j-api作为provided。这在某种程度上是有效的,因为LoggingApplicationListene

java - 如何调试/记录/跟踪小程序加载问题?

最近,我们的两个客户报告了我们的小程序存在的问题。查看java插件控制台,它充满了ClassNotFoundException,所以我们的代码都没有执行。我已经能够使用磁盘上可用空间为0的虚拟pc镜像重现堆栈跟踪,但是当我恢复一些磁盘空间时问题消失了,并且用户告诉我他们的磁盘未满;他们能够创建新文件。我们的小程序需要java6,问题出现在jre的更新1、10和14中。我们也试过不同的浏览器(IE和Firefox),清除浏览器和java缓存,...我如何调试或跟踪jvm正在加载我们的小程序?我想问题出在Windows上的一些安全指令上,所以我正在使用Sysinternal的进程监视器来记

java - Log4j 数据库附加程序

我希望log4j将我的错误记录在MySql数据库中,但关于这方面的官方文档非常少(为什么?)。无论如何,这是我对log4j.xml配置文件的尝试:我需要自定义“应用程序”参数。在C#中使用log4net,在我的代码中,我将像这样添加它:log4net.GlobalContext.Properties["Application"]=applciation;并像这样在我的xml配置文件中添加它:我想知道如何用log4j做同样的事情?谢谢! 最佳答案 好的,感谢这篇文章,我找到了如何做到这一点:Log4JCustomFields基本上,我

java - Log4j - 找不到日志文件

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

java - 如何将我的 Java 应用程序日志记录事件映射到 GCP Felexible 非兼容 App Engine 中相应的云日志记录事件级别?

我是GCPAppEngine的新手,出于多种原因我选择了灵活的环境。然而,我震惊地发现灵活环境的非“兼容”运行时似乎不允许我将我的应用程序的日志事件映射到云日志中适当的日志级别。我读对了吗?https://cloud.google.com/appengine/docs/flexible/java/writing-application-logs#writing_application_logs_1而且这个页面真的没有帮助。https://cloud.google.com/java/getting-started/logging-application-events这是在阅读了几个小时的

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 - 出于好奇——为什么日志记录 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 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 - 从 IntelliJ Ultimate 外部运行时,Tomcat 的 "server log"在哪里?

运行我的Vaadin时应用Tomcat8.5外部来自IntelliJ在macOSSierra上使用Ultimate2017.2,我收到一条错误消息:Artifacttimepiece-ui:warexploded:Errorduringartifactdeployment.Seeserverlogfordetails.➠这个“服务器日志”在哪里?当我查看apache-tomcat-8.5.20>logs时,该文件夹是空的。事实上,我找不到我的应用程序部署在apache-tomcat-8.5.20中的任何痕迹。➠IntelliJ+Tomcat是否有其他地方放置我的应用程序和服务器日志?