Coding

新的项目采用了ASPNETCORE,其中依赖注入使用了AutoFac,通过JSON配置文件实现注入. 在配置生存周期的时候,将部分类型设置为SingleInstance. 其中有个发邮件的类,代码大概是下面的. Class EmailService{ .. ctor(){ mailMessage = new MailMessage(); } public void SendAsync(string To,…){ mailMessage.ToList.Add(To); } .. } 单例的对象里面的mailMessage.ToList在并发的情况下,在controller注入实例化后下次实例化之前,可能被多次添加收件人, 出现了一些用户收到多封的情况. 一些教训: 1. 不要写和修改自己不理解的代码 2. 代码提示很重要, 用代码配置可能比写配置文件更清晰,避免犯错 3. CodeReview很重要 […]

前言 日志用来记录用户操作、系统运行状态等,是一个系统的重要组成部分。然而由于日志并非系统核心功能,通常情况下并不受团队的重视。在出现问题需要通过日志来定位时,才发现日志还存在很多问题。 日志记录的好坏直接关系到系统出现问题时定位的速度,同时可以通过对日志的观察和分析,提前发现系统可能的风险,避免线上事故的发生。 我们在开发和运维 NOS (网易对象存储, Netease Object Storage )的过程中,对整个系统的日志进行了分析优化,积累出一些经验,归纳如下。 相关问题经验整理 关于日志级别 我们通常使用的日志库(如 log4j 等),将日志基本分为以下几类(从低到高): TRACE – The TRACE Level designates finer-grained informational events than the DEBUG DEBUG – The […]