我正在尝试使用tomcat、jsp、servlets和log4j来完成我的第一个web项目。现在我在abstractrepository中有一个记录器,其初始化如下:
private final static Logger LOG = Logger.getLogger(AbstractRepository.class);
问题是如何登录子类(用户存储库、主题存储库等)。在abstractrepository中有一个logger或creategetter并只使用这个logger是否更好?
请帮我回答题目
3条答案
按热度按时间thigvfpy1#
试着用这个,它用
log.properties
文件来设置格式并生成日志。整个应用程序只使用一个全局记录器。ntjbwcob2#
一定有一个
log4j.properties
src文件夹中的文件,witch配置为日志消息输出。现在,正如您想知道的,我们需要为每个类创建单独的logger对象。private final static Logger LOG = Logger.getLogger(SubjectRepository.class);
private final static Logger LOG = Logger.getLogger(UserRepository.class);
fcipmucu3#
使记录器私有,并为每个子类创建新的记录器。如果这样做,则可以为每个记录器单独配置级别:
如果您可以自由选择日志框架,请使用slf4j。这是一个日志facade,它将从所有遗留框架收集日志,并将其路由到您选择的框架,即log4j或logback。我建议您使用logback作为日志实现,因为它已经基于slf4j,现代且快速,并且它与log4j一样简单。
更新
要使其正常工作,首先需要将这些jar包含到类路径中(通过maven或“lib”-directroy):
slf4j-api.jar文件
jcl-over-slf4j.jar(将apache commons日志重定向到slf4j)
log4j-over-slf4j.jar(将log4j重定向到slf4j)
jul-to-slf4j.jar(将java util日志重定向到slf4j,请参阅handlerbridge信息)
logback-classic.jar(从slf4j重定向到logback日志)
logback-core.jar文件
在“src/java/resources”(maven)或类路径的默认包(“src”)中放置一个名为“logback.xml”的文件,并添加一些内容,例如:
例如,将根记录器设置为“warn”,将特定于项目的记录器设置为“info”。它将显示项目中的大多数日志,但只显示来自其他库的警告和错误。
在您的类中,通过以下方式创建记录器: