标签: appender

使用Console和File appender的非常简单的log4j2 XML配置文件

我想要一个非常简单的XML配置文件,其中包含一个控制台和一个使用log4j2的文件追加器.

(Apache网站给我留下了很多信息.)

xml console appender fileappender log4j2

210
推荐指数
3
解决办法
14万
查看次数

log4j:将特定类的日志输出记录到特定的appender

我使用log4j,并希望将某些Logger的输出路由到特定文件.

我已经有多个appender了.现在,为了使调试更容易,我想告诉log4j应该将特定类(例如foo.bar.Baz)生成的输出写入特定的日志文件.

可以这样做吗?

java logging log4j appender

155
推荐指数
2
解决办法
12万
查看次数

Log4Net,如何在我的日志记录中添加自定义字段

我使用log4net.Appender.AdoNetAppender appender.
我的log4net表是以下字段[Date],[Thread],[Level],[Logger],[Message],[Exception]

我需要在log4net表中添加另一个字段(例如SalesId),但是如何在我的xml和代码中指定在记录错误或信息消息时记录"SalesId"?

例如 log.Info("SomeMessage", SalesId)

这是log4net xml

  <appender name="SalesDBAppender" type="log4net.Appender.AdoNetAppender">
    <bufferSize value="1" />
    <connectionType value ="System.Data.SqlClient.SqlConnection" />
    <connectionString value="Data Source=..." />
    <commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
    <parameter>
      <parameterName value="@log_date" />
      <dbType value="DateTime" />
      <layout type="log4net.Layout.RawTimeStampLayout" />
    </parameter>
    <parameter>
      <parameterName value="@thread" />
      <dbType value="String" />
      <size value="255" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%thread" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="@log_level" />
      <dbType value="String" />
      <size value="50" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level" /> …
Run Code Online (Sandbox Code Playgroud)

c# log4net appender

94
推荐指数
2
解决办法
6万
查看次数

如何在log4j中创建自己的Appender?

我是log4j的新手.任何人都可以解释如何创建自己的Appender?即如何实现类和接口以及如何覆盖它?

java log4j appender

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

如何在logback中启动时滚动日志文件

我想配置logback来执行以下操作.

  • 登录到文件
  • 达到50MB时滚动文件
  • 只保留7天的日志
  • 在启动时总是生成一个新文件(滚动)

除了最后一项,启动滚动,我已经完成了所有工作.有谁知道如何实现这一目标?这是配置......

  <appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">

    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg \(%file:%line\)%n</Pattern>
    </layout>

    <File>server.log</File>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <FileNamePattern>server.%d{yyyy-MM-dd}.log</FileNamePattern>
      <!-- keep 7 days' worth of history -->
      <MaxHistory>7</MaxHistory>

      <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <MaxFileSize>50MB</MaxFileSize>
      </TimeBasedFileNamingAndTriggeringPolicy>

    </rollingPolicy>
  </appender>
Run Code Online (Sandbox Code Playgroud)

java startup logback appender

44
推荐指数
5
解决办法
3万
查看次数

Log4j使用属性文件为不同的日志级别提供不同的appender

由于log4j的官方文档是一个断开的链接,并且入门指南对我没有帮助,我想知道如何使用不同日志级别的两个appender用于同一个记录器,使用.properties文件而不是.xml一个.

例如,像这样:

log4j.rootLogger=debug,  APPENDER_FILE, APPENDER_STDOUT
Run Code Online (Sandbox Code Playgroud)

我正在使用两个不同的appender进行日志记录,但是在相同的日志级别(DEBUG)上.我想使用INFO日志级别APPENDER_STDOUTDEBUG日志级别APPENDER_FILE.

我的问题与类似,但与该问题不同,我使用的是log4j.properties文件,而不是xml文件.

configuration log4j appender

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

如何从Log4j Logger/Appender中排除单个类?

我有一个包"com.example".这个包有五个类.我想将其中四个类记录到一个文件中,但排除第五个类.

我可以编写四个记录器,例如logger name ="com.example.Class1",并将相同的appender添加到所有四个记录器.有没有更简单的方法(让我们认为我有100个而不是5个班级)?

还有其他一些像这样的问题.但其他人只想排除一个类来记录这个类.这可以使用addivity标志来解决.但我认为可加性标志在这里不起作用,因为我不想记录第五类,而是所有其他类?!

希望有人可以帮帮我吗?

java logging log4j appender

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

如何在log4j中使用AsyncAppender?

如何在log4j中使用AsyncAppender以便将日志消息写入Web服务?我应该创建自己的Appender,它会扩展AsyncAppender或只是将自定义appender附加到AsyncAppender?如果第二个选择正确,我应该在哪里使用AsyncAppender对象?有什么例子吗?

log4j appender

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

log4net BufferingForwardingAppender性能问题

编辑2:我已经解决了问题(请参阅下面的答案)请注意,该问题可能会影响所有使用BufferingForwardingAppender修饰的appender以及从BufferingAppenderSkeleton继承的所有appender(分别为:AdoNetAppender,RemotingAppender,SmtpAppender和SmtpPickupDirAppender)*

我正在做一些非常基本的log4net工作台,我尝试用BufferingForwardingAppender修饰RollingFileAppender.

我通过BufferingForwardingAppender遇到了糟糕的性能,而不是直接通过RollingFileAppender,我真的没有理由.

这是我的配置:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="c:\" />
  <appendToFile value="false" />
  <rollingStyle value="Composite" />
  <datePattern value="'.'MMdd-HH'.log'" />
  <maxSizeRollBackups value="168" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">      
    <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
  </layout>
</appender>

<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender">
  <bufferSize value="512" />
  <appender-ref ref="RollingLogFileAppender" />
</appender>

<root>
  <level value="DEBUG" />
  <appender-ref ref="BufferingForwardingAppender" />    
</root>
Run Code Online (Sandbox Code Playgroud)

这是基准(非常简单的代码):

var stopWatch = new Stopwatch();
stopWatch.Start();            
for (int i = 0; i < 100000; i++)            
{
   Log.Debug("Hello");
}
stopWatch.Stop();
Console.WriteLine("Done in {0} ms", stopWatch.ElapsedMilliseconds); …
Run Code Online (Sandbox Code Playgroud)

c# performance log4net appender

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

log4j:如何使用SocketAppender?

我有一个关于如何使用SocketAppender 的答案(我需要它来从分布式系统收集日志),但我是log4j的新手,我不知道如何使用该示例代码.

可能我应该有这样的log4j-server.properties:

log4j.appender.SERVER=org.apache.log4j.net.SocketAppender
log4j.appender.SA.Port=4712
log4j.appender.SA.RemoteHost=loghost
log4j.appender.SA.ReconnectionDelay=10000
Run Code Online (Sandbox Code Playgroud)

但我还是不知道如何启动服务器(如何使用这一行)

org.apache.log4j.net.SimpleSocketServer 4712 log4j-server.properties

什么是最重要的:哪里\我怎样才能看到我的日志?

java log4j appender

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