草庐IT

SystemOutToSlf4j

全部标签

Java 应用程序 : Getting Log4j To Work Within Eclipse Environment

我已尽力设置Eclipse和我的Java应用程序以使用log4j.properties文件。但是,它似乎没有使用属性文件,我不确定为什么。库:slf4j-api-1.6.1、slf4j-jdk14-1.6.1在应用程序中,日志记录工作正常。我能够将信息、警告和错误打印到Eclipse控制台中。我希望能够做的是将日志级别更改为调试并将所有日志消息打印到控制台和日志文件。我创建了一个如下所示的log4j.properties文件:log4j.rootLogger=DEBUG,console,filelog4j.rootCategory=DEBUG,R,O#Stdoutlog4j.appen

java - 使用 Log4J 1.*,如何将两个包写入两个单独的文件?

我有以下两个包:com.mycorp.project.firstcom.mycorp.project.second我想配置Log4J(SLF4J)将日志从一个包写入一个文件,并将日志从另一个包写入第二个文件。我不想让他们混在一起。需要说明的是,这是一个项目/一个进程在运行。我试过过滤和记录器,但它们似乎被log4j忽略了。两个文件始终相同。编辑:感谢您到目前为止的回答,这就是我所得到的,但它不起作用。两个输出文件是相同的。devA:/dev/LogTesting/logs/first.logINFOA:/dev/LogTesting/logs/first.%d{yyyyMMdd}%d{

java - 如何在 log4j2.02 中以编程方式配置 Logger?

我想使用log4j没有任何配置文件。我想做的是:logger=(Logger)LogManager.getLogger(this.getClass());Stringpattern="[%level]%m%n";//dosomethingtomakethisloggeroutputtoanlocalfile"/xxx/yyy/zzz.log"我找到了这个答案:ConfiguringLog4jLoggersProgrammatically.但是Logger#addAppender的文档说:此方法不通过公共(public)API公开,主要用于单元测试。我不确定在我的代码中使用这个方法是否正

java - 如何在运行时覆盖我的 jar 中的 log4j 属性文件

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:DynamicallyChanginglog4jloglevel我有一个包含log4j属性文件的jar文件。我试着用-Dlog4j.configuration=file:[文件名]在运行时使用更改属性文件java,但它没有用。我需要在sh文件中执行此操作谁能告诉我怎么做?我也尝试添加-Dlog4j.defaultInitOverride=true

java - 拦截日志消息 slf4j

我有一个使用slf4j作为日志外观的应用程序。现在我想在将传输传递给底层日志系统之前拦截所有错误消息。slf4j可以这样做吗?我查看了文档,发现我们可以更改实现中的Appender(如log4j)来实现此目的,但我们可以在外观级别本身执行此操作吗?拦截做一些基本的事情,比如为错误消息的数量递增一个全局计数器等。 最佳答案 在SLF4JAPI中没有任何东西可以做到这一点。但是如果你的记录器是Logback你可以使用Filter像TurboFilter。如果您不使用Logback,您可能需要类似AspectJ拦截器的东西。

java - log4j 属性 DailyRollingFileAppender 不起作用

我想要每日日志,日志文件附加了yyyy-dd-mm格式的日期。当我使用DailyRollingFileAppender时,不会创建新的日志文件。日志被写入同一个日志文件。此外,不考虑提供的日期模式。创建的日志文件是LoggerFile.log。并且每个内容(即使是第二天)都写入此文件。我正在使用log4j-1.2.17jar。我正在使用Java开发Netbeans7.3.1。有没有人在使用这个JAR遇到这样的问题。请帮忙!这是我使用的属性文件的内容:#Rootloggeroptionlog4j.rootLogger=ERROR,FILE,stdout#Definethefileappe

java - log4j.properties 被忽略

我在glassfishv3.0.1上使用IntelliJIDEA9.0.3通过maven部署了一个JavaEE6Wicket应用程序。我将slf4j-log4j12-1.5.6与slf4j-api-1.5.8和log4j-1.2.16一起用于日志记录。当我通过netbeans或eclipse部署时,它以前工作正常,但是当我使用IntelliJIDEA部署时,我的log4j.properties文件被忽略,glassfish的日志记录处理我的日志消息。我不认为IDEA与它有任何关系,一定有其他东西改变了我只是想不通是什么。我已验证我的log4j.properties文件在我的WEB-IN

java - 如何在多模块 Maven 项目中配置 slf4j+logback?

我的Maven项目有大约七个子模块。其中六个打包为JAR,一个打包为WAR。我应该在每个模块中创建单独的logback.xml配置吗?或者我应该有一个所有其他模块都依赖的“通用”模块,并在其中放置一个logback.xml吗?还有其他选择吗?谢谢。 最佳答案 所有库JAR都应该仅使用slf4j-api依赖项,并且只有最终应用程序(在您的情况下是.war)应该包含logback依赖项及其配置。出于测试目的,我认为更容易制作test对slf4j-simple的依赖,它使用起来更简单,并且通常足以用于测试用例。

java - log4j 和线程上下文类加载器

我是Java的新手,刚刚开始了解类加载器的概念。现在我在使用log4j线程上下文类加载器时遇到了一些问题。我收到以下错误:“org.apache.log4j.ConsoleAppender”对象不可分配给“org.apache.log4j.Appender”变量。“org.apache.log4j.Appender”类由[java.net.URLClassLoader@105691e]加载,而“org.apache.log4j.ConsoleAppender”类型的对象由[sun.misc.Launcher$AppClassLoader@16930e2]加载.无法实例化名为“CONSO

java - SLF4J 日志级别作为参数

这个问题在这里已经有了答案:Settingloglevelofmessageatruntimeinslf4j(18个答案)关闭6年前。我们正在寻求使用SLF4J,但我们发现一件事是您不能将级别指定为参数,即Logger.log(Level.INFO,"messsage");你必须这样做logger.info("message");这会阻止通过方法传递所有内容,因此您可以将其他属性附加到类中的所有日志消息。publicclassTest{publicTest(SomeObjobj){log(Level.INFO,"message");}publicvoidanotherMethod(){