![](/img/trans.png)
[英]How do I efficiently implement a singleton listener in a standalone Java application?
[英]How do I implement logging in an enum singleton?
我正在使用枚举单例,但实现日志记录很麻烦。 这个:
public enum Foo {
INSTANCE;
private final Logger log = Logger.getLogger(Foo.class.getName());
...
}
记录器以我为普通Java类实例化记录器的方式实例化,但当然我收到以下错误:
Foo.java: illegal reference to static field from initializer
是否有相同的方式登录枚举单身?
在回答你的问题时,只需使记录器保持静态......
顺便说一下,我认为它的标准做法是使用静态记录器,即使对象实例也是如此。 换句话说,记录器在课堂上; 所有对象都使用静态记录器引用。
看到
http://logging.apache.org/log4j/1.2/manual.html
大多数使用记录器的例子都有记录器作为静态属性......
动态记录:
Logger.getLogger(Foo.class.getName()).info("log info");
更短一点:使用方法:
private static Logger logger()
{
if(logger == null)
{
logger = Logger.getLogger(AnEnum.class);
}
return logger;
}
/** Logger **/
private static Logger logger;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.