2022首次更文挑战第22天 | 日志功能和访问量的开发

93 阅读1分钟

「这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战

这一篇主要讲系统中日志的开发功能,日志记录了代码执行中的信息,可以把参数,方法,结果打印出来,这样能看到是不是达到了自己的预期,是不是自己想要的结果。一个系统中,如果代码量太多,一个功能,代码,逻辑特别多,而且用户使用的时候,你是不知道他们会传什么数据的,这个时候,打印参数就体现了日志的作用,打印方法,是看方法有没有被调用,打印结果,是看有没有实现自己想要的效果。

//取数据库
JSONObject articleByDB = articleService.getArticleByArticleId(Long.parseLong(articleId), username);
if (articleByDB != null) {
    logger.info("取数据库里面的文章:{}", articleByDB.get("articleTitle"));
    String status = (String)articleByDB.get("status");
    if ("200".equals(status)) {
        redisService.putArticleOnRedis("article", articleId, articleByDB);
        logger.info("保存文章到缓存");
    } else {
        logger.info("没获取到文章,不用保存到缓存");
    }
}

上面这个示例,很直观的体现了日志的作用。首先,是判断从数据库查询这篇文章,如果能查到文章,打印日志信息,关于查到文章的日志信息。并且判断状态,如果是200,状态为正常,打印日志保存到缓存,否则,打印没获取到文章的日志信息。

系统中还有个实现的小功能,文章有很多,我想要按照访客量排序。article是文章表,visitor 是用户访客表,通过article的articleId 和visitor 的pageName 相关联,然后按照visitor 的访问量进行降序即可,查看下面的代码和实现效果。

@Select("select a.id,a.articleId,a.originalAuthor,a.articleTitle,a.articleCategories," +
         "a.publishDate from article a left join visitor v on a.articleId = v.pageName " +
         "order by v.visitorNum desc")
 List<Article> articleOrderByVisitor();

在这里插入图片描述