如何为包级日志配置log4j?

如何为包级日志配置log4j?,log4j,flume,Log4j,Flume,我想登录到多个日志文件Flume和console。如何将log4j设置为包级别?将com.mypackage.myclass设置为flume,将其他包设置为console 查看此博客帖子 它有一个完整的PDF供下载,介绍如何将log4j添加到项目中 您需要为不同的包定义类别。所有内容都在上面的PDF中解释 希望有帮助。查看此博客帖子 它有一个完整的PDF供下载,介绍如何将log4j添加到项目中 您需要为不同的包定义类别。所有内容都在上面的PDF中解释 希望有帮助。首先,您需要配置log4j,

我想登录到多个日志文件Flume和console。如何将log4j设置为包级别?将com.mypackage.myclass设置为flume,将其他包设置为console

查看此博客帖子

它有一个完整的PDF供下载,介绍如何将log4j添加到项目中

您需要为不同的包定义类别。所有内容都在上面的PDF中解释

希望有帮助。

查看此博客帖子

它有一个完整的PDF供下载,介绍如何将log4j添加到项目中

您需要为不同的包定义类别。所有内容都在上面的PDF中解释


希望有帮助。

首先,您需要配置log4j,使其具有两个命名的记录器,一个发送到控制台appender,另一个发送到Flume。然后,您可以编写并使用代理类进行日志调用,根据调用方所在的包,将log4j调用路由到不同的日志记录器。您可以通过访问当前线程的堆栈来实现这一点,如下所示:

public class Logger
{
    public static org.apache.log4j.Logger getLogger()
    {
            // this will get the calling frame, 0=Thread, 1=this, 2=caller
            StackTraceElement stackElement = Thread.currentThread().getStackTrace()[2];
            if(stackElement.getClassName().startsWith("the.package.that.goes.to.flume"))
            {
                return org.apache.log4j.Logger.getLogger("Flume");
            }
            else
            {
                return org.apache.log4j.Logger.getLogger("Console");
            }
        }
    }
}
上面的代码假设您已将两个记录器命名为“Flume”和“Console”


当您在应用程序中进行日志记录调用时,请使用Logger.getLogger,而不是直接转到log4j。

首先,您需要将log4j配置为具有两个命名的记录器,一个发送到控制台appender,另一个发送到Flume。然后,您可以编写并使用代理类进行日志调用,根据调用方所在的包,将log4j调用路由到不同的日志记录器。您可以通过访问当前线程的堆栈来实现这一点,如下所示:

public class Logger
{
    public static org.apache.log4j.Logger getLogger()
    {
            // this will get the calling frame, 0=Thread, 1=this, 2=caller
            StackTraceElement stackElement = Thread.currentThread().getStackTrace()[2];
            if(stackElement.getClassName().startsWith("the.package.that.goes.to.flume"))
            {
                return org.apache.log4j.Logger.getLogger("Flume");
            }
            else
            {
                return org.apache.log4j.Logger.getLogger("Console");
            }
        }
    }
}
上面的代码假设您已将两个记录器命名为“Flume”和“Console”


当您在应用程序中进行日志调用时,请使用Logger.getLogger,而不是直接转到log4j。

然后我只知道flume不支持开箱即用。看看flume-daemon.sh,flume_LOGFILE被设置为一个文件:然后我只知道flume不支持开箱即用。看看flume-daemon.sh,flume_日志文件被设置为一个文件:这不回答您的问题吗?这不回答您的问题吗?