我查过类似的问题,但没有一个答案真的解决了这个问题。我有一个Spring Boot应用程序配置为使用slf4j+log4j2(在src/main/resources
中有一个内部log4j2.xml配置)。我在JBoss EAP(6.4&7)上html" target="_blank">部署了这个war,可以看到JBoss启动时的日志跟踪。问题是,log4j2附加程序不打印任何内容,无论是在控制台还是在文件上:
>
在控制台中,只显示jboss日志记录日志(在我的应用程序中使用jboss日志记录格式跟踪的每一个log.info())。
创建了一个C:\logs\out.log
文件,但没有在其中写入任何内容。
以下是我所做的事情:
我的应用程序使用的是SLF4J,在调试时,我看到底层的日志记录实现是JBoss的日志记录,而不是Log4j2
log4j2日志记录在Tomcat上正常工作。
在standalone.xml中,我删除了
和
块。这样做之后,在控制台上只打印了几个jboss跟踪(但从应用程序log.info()中没有),但是log4j2文件appender会正确打印。
in如何配置JBoss以支持应用程序在控制台和文件上的log4j2.xml打印?
log4j2.xml摘录:
<Configuration status="WARN">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout ...
<RollingFile name="file"
filePattern="'.'%d{yyyy-MM-dd}"
fileName="c:\logs\out.log">
<PatternLayout
pattern="%d{yyyy-MM-dd'T'HH:mm:ss.SSS} - %c{1.} %5p - %m%n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
<Logger name="org.springframework" level="info" additivity="false">
<AppenderRef ref="file" />
<AppenderRef ref="console" />
</Logger>
</Configuration>
更新
这个问题与JBoss管理SLF4J的方式有关:
org.slf4j.Logger slf4jLogger = org.slf4j.LoggerFactory.getLogger(PresupuestoController.class);
org.apache.logging.log4j.Logger log4j2Logger = LogManager.getLogger(PresupuestoController.class);
如果我运行slf4jlogger.info(“slf4j!!!”);
。它使用底层的JBoss记录器打印:
11:19:03,122 INFO [com.my.web.SomeController] (default task-2) SLF4J!!!
但是,当我执行log4j2logger.info(“log4j2!!!”);
时,它会在控制台上按log4j2.xml配置打印:
11:19:03,668 INFO [stdout] (default task-2) 2016-05-19T11:19:03.663 c.m.w.SomeController INFO - LOG4J2!!!
作为要求,我必须在代码中使用SFL4J,所以我需要一种方法来强制它使用Log4j2而不是jboss。
经过一番努力,终于解决了以下问题:将jboss-deployment-structure.xml
文件添加到WEB-INF文件夹中,内容如下:
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name='org.slf4j' />
<module name='org.slf4j.impl' />
</exclusions>
</deployment>
</jboss-deployment-structure>
现在,JBoss日志记录继续工作,但也允许我在应用程序代码中使用SFL4J+Log4j2。
打印是不属于 JavaScript 语言标准的功能。但是,我们在这里进行的所有操作,浏览器和 Node.js 都是支持的。 打印意味着“在控制台上显示内容”,其中“控制台”是浏览器控制台或运行 Node.js 的终端。 完整的console.* API 在 MDN 的网页 以及 Node.js 官网都有相关文档。接下来我们将快速浏览以下两个操作: console.log() console.err
ASP.NETCore支持一个新的配置系统,如下所示:https://docs.asp.net/en/latest/fundamentals/configuration.html 也支持这种模式吗?NET核心控制台应用程序? 如果不是,什么是替代以前的和模型?
我想使用新的log4j2-Java日志框架。一切正常,但我从一小时后就尝试加载一个自定义配置文件来配置日志记录(如日志级别)。 这是我的log4j2.xml: 我尝试了以下方法,但没有任何效果: 移动log4j2.xml文件,使其位于默认包中。 将log4j2.xml文件移动到项目中的任意位置 将log4j2.xml文件命名为log4j.xml 在项目中创建一个文件夹,将log4j2.xml文件放
配置控制台 您可以在 config/kibana.yml 文件中添加以下配置: console.enabled 默认: true 。设置为 false 以禁用控制台。切换此配置将导致服务器在下次启动时重新生成资源,这可能会造成页面开始服务之前有些延迟。
问题内容: 当您运行/调试它们时,是否可以将eclipse配置为在新窗口中打开控制台应用程序而不是其自己的控制台? 我正在调试客户端/服务器应用程序,我想一次看到两个应用程序的输出,而不必在选项卡之间切换… 问题答案: 在eclipse中,您可以有两个控制台视图…在控制台视图上,您有一个名为“打开控制台”的按钮(控制台视图中最右边的按钮)。如果单击此按钮并选择选项3(新控制台视图),将看到两个
问题内容: 我正在创建一个需要进度条的小型控制台应用程序。就像是… 我的问题是,如何删除已经打印到控制台的字符?当我达到第51个百分比时,我必须从控制台中删除此行并插入新行。在我当前的解决方案中,这就是发生的事情… 我使用的代码是… 我正在使用PHP在Linux中进行此操作(只有我会使用该应用-请原谅语言选择)。因此,该解决方案应在Linux平台上运行- 但是,如果您有跨平台的解决方案,那将是更好