private static Logger logger = Logger.getLogger(MstNinushiAction.class); 请问啥意思啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了private static Logger logger = Logger.getLogger(MstNinushiAction.class); 请问啥意思啊?相关的知识,希望对你有一定的参考价值。

后面的.class有什么作用。请各位大侠讲解一下

private static Logger logger = Logger.getLogger(MstNinushiAction.class)的意思是:

得到MstNinushiAction的Class类型对象。因为Logger.getLogger方法需要传入Class类型对象,这样该logger的信息中会详细体现出是哪个路径的哪个类的日志。

“.class”的作用:

**.class是将要加入日志的类加进入。假如myclass这个类需要加日志信息就在private static Logger logger = Logger.getLogger(myclass.class);

这是获取一个myclass类的logger myclass内定义的日志信息就能够显示出来了。

扩展资料:

Java日志管理方法:

1、log4j

log4j是Apache的一个开源项目,主要是用来做Java开发中的日志管理工作。主要是由三个重要组件构成的。可管理日志的优先级、输出目的地以及输出格式等。它的配置文件主要有XML和properties两种,当然,也可以在程序里配置,但实际开发中一般使用properties文件。

2、Commons logging

Apache针对不同的开发语言做了一系列的日志工具包,在Java、.net、php、c++上都可以用,并且为这些日志制定了风格一致的操作方式.

这里就实现了Commons-logging(JCL),Commons-logging主要是为哪些需要在不同环境下使用不同日志结构做开发的程序员而编写的,其中包括Apache Log4j和Java log。

使用Commons-loogging的Log接口,并且在运行时决定使用哪种日志架构。现在使用Commons-logging和Log4J已经成为了Java日志的标准解决方案。

参考技术A 就是得到MstNinushiAction的Class类型对象,因为Logger.getLogger方法需要传入Class类型对象,这样该logger的信息中会详细体现出是哪个路径的哪个类的日志。 参考技术B **.class是将你要加入日志的类加进入 假如你的myclass这个类需要加日志信息就在
private static Logger logger = Logger.getLogger(myclass.class);
这是获取一个myclass类的logger myclass内定义的日志信息就能够显示出来了本回答被提问者和网友采纳
参考技术C Logger.getLogger(Class clazz) 语法需要

使用log4cplus时遇到的链接错误:无法解析的外部符号 "public: static class log4cplus::Logger __cdecl log4cplus::Logger

#include "stdafx.h"
#include <log4cplus/logger.h>
#include <log4cplus/loggingmacros.h>
#include <log4cplus/configurator.h>
#include <log4cplus/fileappender.h>  
#include <log4cplus/win32debugappender.h>
#include <log4cplus/layout.h> 
#include <memory>
#include <log4cplus/consoleappender.h>
#include <log4cplus/tchar.h>

using namespace log4cplus;
using namespace log4cplus::helpers;

int _tmain(int argc, _TCHAR* argv[])
{
    log4cplus::initialize();
    Logger logger = Logger::getInstance(_T("main.log"));    
    //std::wstring log_path = _T("d:\\test.log");
    SharedObjectPtr<Appender> _append (new ConsoleAppender());
    
    //step 1

    
    return 0;
}

 

error LNK2019: 无法解析的外部符号 "public: static class log4cplus::Logger __cdecl log4cplus::Logger::getInstance(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" ([email protected]@[email protected]@[email protected][email protected][email protected][email protected]@@[email protected][email protected]@@[email protected]@@Z),该符号在函数 _wmain 中被引用
1>D:\GetFileIcon\Rand\Debug\log4cpptest.exe : fatal error LNK1120: 1 个无法解析的外部命令

 

由于我的导入库lib,以及动态库dll都是正确加载的,所以不是库没正确加载的问题。

分析:这是由于当前工程项目的“字符集”设置与log4plus所用的“字符集”不一致所导致的,log4cplus是使用多字节字符集,而当前工程是使用 Unicode 字符集

解决方案:打开项目属性页-常规-字符集,改成“多字节字符集”。

以上是关于private static Logger logger = Logger.getLogger(MstNinushiAction.class); 请问啥意思啊?的主要内容,如果未能解决你的问题,请参考以下文章

使用log4cplus时遇到的链接错误:无法解析的外部符号 "public: static class log4cplus::Logger __cdecl log4cplus::Logger

java.util.logging.Logger使用具体解释

如何解决testng执行用例失败自

ty修饰符 public private static

这句Java代码是啥意思private final Logger logger = LoggerFactory.getLogger(getClass());

Spring 如何初始化一个容器