【发布时间】:2022-01-05 19:24:51
【问题描述】:
我开始添加 slf4j,将自定义异常记录到我的项目中。我将日志添加到我的 ServiceImplementation 类中,其中有我在 DaoImplementation 类中实现的 CRUD 方法。问题是:如果我的 CRUD 方法已经在 Dao 类中添加了日志和自定义异常,它们是否应该在其他类中具有相同的日志? 示例:
public class SpringTeacherDao implements TeacherDao {
private static Logger logger = LoggerFactory.getLogger(SpringTeacherDao.class);
private JdbcTemplate jdbcTemplate;
@Autowired
public SpringTeacherDao(DataSource dataSource) {
jdbcTemplate = new JdbcTemplate(dataSource);
}
@Override
public void create(Teacher teacher) {
logger.debug("Add teacher status: in progress...");
if (teacher == null) {
String error = "Add teacher status: Error, teacher is null.";
logger.warn(error);
throw new UniversityDaoException(error);
}
String sql = "INSERT INTO teacher VALUES(?,?,?)";
try {
jdbcTemplate.update(sql, teacher.getID(), teacher.getName(), teacher.getSurname());
}catch (DuplicateKeyException e){
String duplicate = "Teacher id already exist";
logger.warn(duplicate);
throw new UniversityDaoException(duplicate);
}
logger.info("Add teacher status: Teacher has been added");
}
public class TeacherServiceImpl implements TeacherService {
private static Logger logger = LoggerFactory.getLogger(TeacherServiceImpl.class);
private final TeacherDao teacherDao;
private final LectureDao lectureDao;
private final TeachersLectureDao teachersLectureDao;
public TeacherServiceImpl(TeacherDao teacherDao, LectureDao lectureDao, TeachersLectureDao teachersLectureDao) {
this.teacherDao = teacherDao;
this.lectureDao = lectureDao;
this.teachersLectureDao = teachersLectureDao;
}
@Override
public void addTeacher(Teacher teacher) {
teacherDao.create(teacher);
}
【问题讨论】: