簡體   English   中英

如何在log4j.xml文件中指定Custom / Extended Logger?

[英]How to specify Custom / Extended Logger in log4j.xml file?

我正在為我的項目使用Custom Logger。 MyLogger類。 這樣我就可以正確地記錄消息,但是它不能從啟動日志的地方正確記錄類和方法的名稱。

因此,我認為我們可能需要在log4j.xml中指定MyLoggger,但我不知道在哪里以及如何進行?

所有建議表示贊賞。 謝謝。


如果您有MyClass類:

package com.acando.norolnes;

public class MyClass {
    public String foo;
    public int bar;
}

在記錄時要自定義格式,可以創建一個自定義ObjectRenderer:

package com.acando.norolnes;

import org.apache.log4j.or.ObjectRenderer;

public class MyClassRenderer implements ObjectRenderer {

    @Override
    public String doRender(Object arg0) {
        if(arg0 instanceof MyClass) {
            MyClass m = (MyClass)arg0;
            return "("+m.foo+" "+m.bar+")";
        }
        return arg0.toString();
    }
}

並使用-element將其鏈接到這樣的配置中:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
  <renderer renderedClass="com.acando.norolnes.MyClass"
            renderingClass="com.acando.norolnes.MyClassRenderer"/>
  <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"/>
    </layout>
  </appender>
  <root>
    <priority value="debug"></priority>
    <appender-ref ref="stdout"/>
  </root>
</log4j:configuration>

有關更完整的示例,請訪問http://www.java2s.com/Code/Java/Language-Basics/log4jAcompleteexample.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM