日志
该记录何种日志?
- 操作时间日志可能有些操作耗时会比较长,可以对方法的处理时间做个记录,例如数据库连接可能耗时很长(但是具体的数据库操作时间记录一般交由数据库本身来做,调用者也不可能知道一条语句耗费了多少时间)则需要记录,某些
api
也可能出现耗时长的问题,记录操作时长可有效发现问题。 - 异常日志程序在运行中抛出的异常,可以记录,方便定位错误。
- 调试日志有时候本地不方便调试可输出调试信息到日志,方便调试。
日志类型:
- 时间日志这种日志一般按照时间成文件,记录每段时间的日志(错误日志只记录索引,错误信息等,不记录错误栈,是为了日志分析以及格式化)。
- 滚动日志滚动日志一般比较随意了,有调试的信息、错误栈、其他一些日志。
日志工具:
awk
了解一下
日志作用
- 记录重要信息,如错误、异常、警告等等
- 用户行为分析
例如将对某一数据连贯的一系列操作共同组成一组事务,一组事务中有多个行为,如用户id、数据id、session_id共同组成对一个数据的一组有关联的操作,可以用来分析用户操作数据的行为,有时候也可以通过行为记录来查找bug
的原因。 - 统计
例如某某接口调用次数特别多,某某接口调用非常少等等统计工作。 - 调试
学会使用日志调试
参数校验
何时使用参数校验?
- 接口需要
如某个接口一定需要id字段才可以查询,则对id做一个校验。 - 性能需要
例如分页的时候,每页数据量过大的时候可能会影响接口的性能,这时候需要对参数做限制。
参数不合法就可以不进行处理,避免不必要的操作,提升性能。 - 数据库需要
数据最多支持32位长度的字符串,这时候提前做校验可以避免错误产生,也可以避免不必要操作提升性能。 - 业务需要
例如邮箱有固定的格式,可以对参数做验证。
其他
简洁不一定是对的,有时候更需要易懂。
一切的 I/O
操作都需要处理异常。
封装需要权衡易读性与一致性。