标签: log4

消除log4net中的重复日志记录

我有一个程序,可以对"myprogram"记录器进行许多log4net调用.它还调用其他代码,使log4net调用其他记录器.我想为"myprogram"捕获高于INFO的所有日志,并为其他所有内容捕获高于WARN的所有日志.这样,我就可以获得特定于我正在处理的任务的正在进行的工作消息,但仍然会通知支持代码中发生的潜在不良事件.我希望将其发送到Console和日志文件.

我有以下log4net配置:

<log4net>
    <root>
        <level value="WARN" />
        <appender-ref ref="Console" />
        <appender-ref ref="LogFile" />
    </root>
    <logger name="myprogram">
        <level value="INFO" />
        <appender-ref ref="Console" />
        <appender-ref ref="LogFile" />
    </logger>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%message%newline" />
        </layout>
        <threshold value="INFO" />
    </appender>
    <appender name="LogFile" type="log4net.Appender.RollingFileAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="- %utcdate %level %logger %ndc %thread %message%newline" />
        </layout>
        <appendToFile value="false" />
        <staticLogFileName value="true" />
        <rollingStyle value="Once" />
        <file value="mylogfile" />
        <immediateFlush value="true" />
        <threshold value="INFO" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    </appender>
</log4net>
Run Code Online (Sandbox Code Playgroud)

这对我来说非常有意义:log> WARN for …

logging log4net log4

62
推荐指数
2
解决办法
3万
查看次数

如何解决log4j中的警告??? Continuable parsing error ...元素类型"log4j:configuration"的内容必须匹配

警告显示......

log4j:WARN Continuable parsing error 28 and column 23
log4j:WARN The content of element type "log4j:configuration" must match
  "(renderer*,appender*,(category|logger)*,root?,categoryFactory?)".
Run Code Online (Sandbox Code Playgroud)

执行java文件时

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration>
        <appender name="console" class="org.apache.log4j.ConsoleAppender">
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="\n[%-6r] - %m" />
            </layout>
        </appender>
        <category name="se.jayway.ddsteps">
            <priority value="info"></priority>
        </category>
        <appender name="FILE" class="org.apache.log4j.FileAppender">
            <param name="file"
                value="D:/workspace_Testing/IdMUnitTests/logs/IdMUnitlog.log" />
            <param name="immediateFlush" value="true" />
            <param name="threshold" value="debug" />
            <param name="append" value="false" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%m%n" />
            </layout>
        </appender>

        <root>
            <priority value="INFO"></priority>
            <appender-ref ref="console" /> …
Run Code Online (Sandbox Code Playgroud)

java log4j log4 appender

11
推荐指数
1
解决办法
2万
查看次数

在同一个解决方案中为同一个项目添加相同的"*.dll"引用

我有一个Visual Studio 2008 .NET C++/CLI解决方案.我的解决方案包含许多子项目.我为每个项目定义了一个自定义的buid目录,称之为Output.

MySoultion

  • MyFirstProject(*.exe)
  • MySecondPrject(*.dll)
  • ...
  • MyNthProject(*.dll)

每个子项目都使用Log4.net.所以我创建了一个目录(称为LogBinary)并将log4.net dll放在该文件夹中.然后使用log4net我添加这个dll作为我的每个项目的引用...但是当我尝试编译我的主项目(*.exe)我收到了大量警告(超过400 ...)

举个例子:

警告110警告C4945:'AbsoluteTimeDateFormatter': 无法从 'somepath\log4net.dll' 导入符号:因为'log4net :: DateFormatter :: AbsoluteTimeDateFormatter' 已经从另一个程序集 'log4net'"somepath\log4net.dll" 导入

很多警告

已经从另一个程序集导入

为什么我收到这个警告?是否有人为多个项目添加相同的dll(使用GAC除外)

最好的祝愿

.net dll gac log4

10
推荐指数
2
解决办法
4126
查看次数

JavaScript AJAX远程记录器

我正在平台上的JavaScript应用程序上工作,它不支持日志输出,不允许为记录器输出打开新窗口,并且没有像Firebug或Safari调试器那样...

到目前为止,我正在使用floating <div>on z-index 2并且我在里面记录了文本,但这还不够.我正在寻找一些轻量级JavaScript JSONP记录器和一些PHP或Tomcat服务器对应...

谢谢STeN

javascript ajax logging json log4

9
推荐指数
1
解决办法
3655
查看次数

从java中的包加载log4j属性

在我的java swing应用程序中,我从存储在应用程序包中的属性文件中加载log4j属性,并将该属性文件加载为,

try {                            
     PropertyConfigurator.configure("conf/log4j.properties");
     logger.info("Starting the system.");                           

} catch (Exception e) {
     e.printStackTrace();

}
Run Code Online (Sandbox Code Playgroud)

然后我在应用程序启动时出现以下错误,

log4j:ERROR Could not read configuration file [conf/log4j.properties].
java.io.FileNotFoundException: conf/log4j.properties (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at java.io.FileInputStream.<init>(FileInputStream.java:97)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:297)
        at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:315)
        at com.bio.ofm.mnu.views.SplashScreen$1.run(SplashScreen.java:70)
        at java.lang.Thread.run(Thread.java:722)
log4j:ERROR Ignoring configuration file [conf/log4j.properties].
log4j:WARN No appenders could be found for logger (com.bio.ofm.mnu.views.SplashScreen).
log4j:WARN Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)

这种加载属性文件的方式是错误的吗?请帮忙.

我构建一个.jar文件并使用该jar运行应用程序**

java properties log4

9
推荐指数
1
解决办法
2万
查看次数

我如何让log4J工作 - 我得到"包org.apache.log4j不存在"

我知道这可能是一个新手问题,但我在设置Log4J时遇到问题:

我想运行一个log4j演示,这是我的代码:

import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;

public class HelloLOG4j {

  private static final Logger logger = Logger.getLogger(Hello.class);

  public static  void main(String argv[]) {
 BasicConfigurator.configure();
 logger.debug("Hello world.");
 logger.info("What a beatiful day.");
  }
}
Run Code Online (Sandbox Code Playgroud)

我在System和User var中设置了我的Classpath:C:\ Users\Adel\Downloads\apache-log4j-1.2.17\log4j-1.2.17.jar

在此输入图像描述

但是当我运行我的程序时,我仍然会得到

errors found:
File: C:\Users\Adel\Desktop\various_topics\JavaProjects\HelloLOG4j.java  [line: 2]
Error: package org.apache.log4j does not exist
Run Code Online (Sandbox Code Playgroud)

我知道我设置了classpath - 如果我运行cmd行:

C:\Program Files\Java\jdk1.6.0_20>print %LOG4J_HOME%
C:\Users\Adel\Downloads\apache-log4j-1.2.17\log4j-1.2.17.jar is currently bein
g printed
Run Code Online (Sandbox Code Playgroud)

configuration log4j log4

9
推荐指数
1
解决办法
2万
查看次数

Log4j中的日期文件名

我正在尝试将当前日期追加到log4j日志文件中.所以它会是这样的:

对myApp-2011-01-07.log

问题是我不想使用DailyRollingFileAppender.原因是每天运行的另一个脚本将备份logs文件夹中的所有内容.这是在Tomcat5.5下运行的.

这可能在log4j中吗?

java logging tomcat log4j log4

6
推荐指数
3
解决办法
4万
查看次数

Log4j是一个死的项目吗?

我最近在其中一个项目上遇到了一些混乱,Log4j,Slf4j和Commons-Logging的"混合"由于混合了来自不同开源项目的不同JAR.

我看到越来越多的OS项目慢慢转向Slf4j.Logback似乎是Log4j的继承者.我认为它实际上是一个岔路口,但由于没有进一步的发展预期为1.3的Log4j Log4j的和2.0是一个实验性的发展,不知道它是否会永远离开那个状态...我不知道!

Log4j死了吗?

java logging slf4j log4 apache-commons-logging

5
推荐指数
1
解决办法
941
查看次数

如何使用Log4J从SLF4J获取除root记录器以外的其他记录器

我在Spring学习Slf4j和log4j.我已经看到了我们使用一行的eyery

private final Logger logger = LoggerFactory.getLogger(name.class);
Run Code Online (Sandbox Code Playgroud)

我已经看到这是默认情况下获取root logger.

  1. 如何获得root logger?我错了吗?

  2. 如何获取log4j.xml文件中定义的其他记录器?

这是我的配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC
  "-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
    debug="false">

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />
        </layout>
    </appender>

    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </appender>

    <appender name="FILE" class="org.apache.log4j.RollingFileAppender">

        <param name="File" value="C:/log/spring-hib.log" />
        <param name="MaxBackupIndex" value="100" />

        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />
        </layout>


    </appender>

  <logger name="com.example.foo">
  <level value="DEBUG"/> …
Run Code Online (Sandbox Code Playgroud)

java slf4j log4

5
推荐指数
1
解决办法
2万
查看次数

为什么log4net没有写入文件?

我已经添加了log4net的所有部分,但它没有写入该文件.
我正在使用VS2012 LoadTest项目.

运行LoadTest项目时,无论是工作System.Console.WriteLine还是Debug.WriteLine()工作.

我添加了汇编信息行:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "web.config", Watch = true)]   //For log4net 1.2.10.0
Run Code Online (Sandbox Code Playgroud)

我已经:
- 添加了webconfig部分
- 初始化了一个配置的XML初始化程序
- 用适当的日志初始化了新的log4net

我的app.config:

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Settings_CacheExplosion.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>

</configuration> …
Run Code Online (Sandbox Code Playgroud)

c# log4 visual-studio-2012

4
推荐指数
1
解决办法
8291
查看次数

如何在Log4j2中向Logger添加appender

在Log4j 1.2中,您可以简单地使用记录器并在运行时添加一个appender.例如,这对于测试目的而言非常方便.我们曾经创建了一个模拟appender并将其添加到记录器中.随后我们可以做出不同的断言.

与log4j2有什么相同之处?

例如,此示例显示了其他人如何添加测试追加器.

log4j2页显示了如何添加附加目的地的几个例子.但是,它们会在整体上下文中添加appender.这似乎与为一个特定记录器添加appender不同.

另一个观察是,如果你使用org.apache.logging.log4j.core.Logger而不是org.apache.logging.log4j.Logger,你仍然可以添加appender.但是大多数人使用org.apache.logging.log4j.Logger.实际上,LogManager返回org.apache.logging.log4j.Logger的一个实例.所以,我不知道如何连接这两个类以及它们是否应该连接.

另一个观察是,如果我打电话

      LogManager.getContext().getConfiguration().getLoggers()
Run Code Online (Sandbox Code Playgroud)

我可以在上下文中获取所有LoggerConfig对象的ist.我随后将appender添加到任何LoggerConfig对象.但问题是,如何获取与org.apache.logging.log4j.Logger实例相关的LoggerConfig?

这让我很困惑.

java logging log4 log4j2

3
推荐指数
1
解决办法
2164
查看次数