JavaShuo
栏目
标签
将log4j重定向到指定函数
时间 2019-11-13
标签
log4j
log
重定
向到
指定
函数
栏目
Log4j
繁體版
原文
原文链接
测试程序源代码
html
[java]
view plain
copy
import
org.apache.log4j.Logger;
/**
* 使Log4j的log输出重定向到指定函数
* Last Update Date: 2014-01-23
* 依赖库
* [1]log4j-1.2.9.jar
* [2]JDK 1.6.x
*
@author
lijun
*
*/
public
class
TestMain{
static
Logger log = Logger.getLogger(TestMain.
class
.getName());
public
static
void
main(String[] args)
{
try
{
TestMain tm =
new
TestMain();
/*
打印全部的Appender实例
Enumeration enumd=log.getRootLogger().getAllAppenders();
while(enumd.hasMoreElements()){
Appender app=(Appender)enumd.nextElement();
System.out.println(app.getName());
System.out.println("in appender");
}
*/
/*
取Class的Method的方法
Class ptypes[] = new Class[1];
ptypes[0] = Class.forName("java.lang.String");
Method m = TestMain.class.getMethod("DebugMsg",ptypes);
*/
{
CallbackAppender ca = (CallbackAppender)Logger.
getRootLogger().getAppender(
"ca"
);
if
(ca!=
null
)
ca.SetCallback(tm.getClass().getMethod(
"DebugMsg"
,
new
Class[] {String.
class
}));
}
log.debug(
"from my appender!"
);
}
catch
(Exception ex)
{
ex.printStackTrace();
}
}
public
static
void
DebugMsg(String msg) {
System.out.println(
"如今log输出被指定到这里了 => "
+msg);
}
}
Appender源代码
[java]
view plain
copy
import
java.lang.reflect.Method;
import
org.apache.log4j.AppenderSkeleton;
import
org.apache.log4j.spi.LoggingEvent;
/**
*
* 这个Appender的做用,是使log输出重定向到某个函数里去
*
@author
lijun
*
*/
public
class
CallbackAppender
extends
AppenderSkeleton {
Method m_ian;
@Override
protected
void
append(LoggingEvent event) {
try
{
String msg =
this
.getLayout().format(event);
//调用方法重定向log输出.begin
if
( m_ian!=
null
)
{
Object[] args = {msg};
m_ian.invoke(
null
, args);
}
//调用方法重定向log输出.end
}
catch
(Exception ie) {
ie.printStackTrace();
}
}
@Override
public
void
close() {
if
(closed)
return
;
//Close动做
//Close标记
closed =
true
;
}
@Override
public
boolean
requiresLayout() {
return
true
;
}
public
void
SetCallback(Method ian)
{
m_ian = ian;
}
}
log4j.xml的配置清单
[html]
view plain
copy
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"
>
<
log4j:configuration
xmlns:log4j
=
'http://jakarta.apache.org/log4j/'
>
<
appender
name
=
"myConsole"
class
=
"org.apache.log4j.ConsoleAppender"
>
<
layout
class
=
"org.apache.log4j.PatternLayout"
>
<
param
name
=
"ConversionPattern"
value
=
"[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n"
/>
</
layout
>
<!--过滤器设置输出的级别-->
<
filter
class
=
"org.apache.log4j.varia.LevelRangeFilter"
>
<
param
name
=
"levelMin"
value
=
"debug"
/>
<
param
name
=
"levelMax"
value
=
"warn"
/>
<
param
name
=
"AcceptOnMatch"
value
=
"true"
/>
</
filter
>
</
appender
>
<!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制-->
<
appender
name
=
"ca"
class
=
"CallbackAppender"
>
<
layout
class
=
"org.apache.log4j.PatternLayout"
>
<
param
name
=
"ConversionPattern"
value
=
"[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n"
/>
</
layout
>
</
appender
>
<!-- 根logger的设置-->
<
root
>
<
priority
value
=
"debug"
/>
<!-- <appender-ref ref="myConsole"/> -->
<
appender-ref
ref
=
"ca"
/>
</
root
>
</
log4j:configuration
>
相关文章
1.
stm32_013_STM32printf()函数重定向到串口
2.
IIS设置将http重定向到https
3.
将GRUB输出重定向到串口
4.
Google Chrome将localhost重定向到https
5.
C#: 将输出重定向
6.
将您的重定向次数过多
7.
log4j配置指定类输出到指定的日志文件
8.
jsp指令和重定向
9.
log4j记录日志到指定文件
10.
log4j输出到指定日志文件
更多相关文章...
•
伪造重定向ICMP数据包
-
TCP/IP教程
•
Scala 指定函数参数名
-
Scala教程
•
RxJava操作符(十)自定义操作符
•
算法总结-双指针
相关标签/搜索
IAT重定向
重定向
定向
重定
指定
定数
指数函数
定向越野
未指定
Log4j
网站建设指南
MyBatis教程
NoSQL教程
数据传输
数据库
数据业务
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
「插件」Runner更新Pro版,帮助设计师远离996
2.
错误 707 Could not load file or assembly ‘Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKe
3.
Jenkins 2018 报告速览,Kubernetes使用率跃升235%!
4.
TVI-Android技术篇之注解Annotation
5.
android studio启动项目
6.
Android的ADIL
7.
Android卡顿的检测及优化方法汇总(线下+线上)
8.
登录注册的业务逻辑流程梳理
9.
NDK(1)创建自己的C/C++文件
10.
小菜的系统框架界面设计-你的评估是我的决策
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
stm32_013_STM32printf()函数重定向到串口
2.
IIS设置将http重定向到https
3.
将GRUB输出重定向到串口
4.
Google Chrome将localhost重定向到https
5.
C#: 将输出重定向
6.
将您的重定向次数过多
7.
log4j配置指定类输出到指定的日志文件
8.
jsp指令和重定向
9.
log4j记录日志到指定文件
10.
log4j输出到指定日志文件
>>更多相关文章<<