由于一些历史原因,php中并没有内建的日志接口,故长期以来也没一个功能完备并且应用广泛的日志库.在我的工作生涯中,如果系统需要记录一些应用日志的话,基本上就是封装一个日志类,然后把一些要记录的字段写入到磁盘文件. 这样就难免要一遍一遍的造轮子,并且在没有一个规范的情况下,记录下来的日志也是不方便分析的.但是希望读完本文后希望你们可以放弃自己造这种日志类的轮子了,因为几乎你不可能造得比我们今天要介绍的主角:monolog更圆. monolog是一个为5.3以上版本php开发的日志库,但是需要注意的…
在Go语言项目中使用Zap日志库 本文先介绍了Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档. 在Go语言项目中使用Zap日志库 介绍 在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能: 能够将事件记录到文件中,而不是应用程序控制台. 日志切割-能够根据文件大小.时间或间隔等来切割日志文件. 支持不同的日志级别.例如INFO,DEBUG,ERROR等. 能够打印基本信息,如调用文件/函…
本文先介绍了Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档. 在Go语言项目中使用Uber-go的Zap Logger 介绍 在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能: 能够将事件记录到文件中,而不是应用程序控制台. 日志切割-能够根据文件大小.时间或间隔等来切割日志文件. 支持不同的日志级别.例如INFO,DEBUG,ERROR等. 能够打印基本信息,如调用文件/函数名和行号…
1. 快速使用 package main import ( "go.uber.org/zap" "time" ) func main() { // 1. sugar日志 //logger, _ := zap.NewProduction() //logger, _ := zap.NewDevelopment() //defer logger.Sync() // 刷新缓冲区,存盘 //sugar := logger.Sugar() //sugar.Infow("…
​ 日常情况下,我们自己都会自行实现一些基础的jar包,如dao包.service包或一些其他完成特定功能的jar包.如果没有一套调试日志信息,出现问题时想查找问题非常不方便.可能大多数小伙伴都会有自己的一套查找问题的方法. ​ 但在jar包中添加日志信息输出还是有必要的. ​ 我们自己实现的jar包中不能写死使用哪一种日志库输出,必竟现在有好几个比较流行的日志库.jdk中自带有一个,log4j ,logback,apache logging,slf4j等都是效率比较高的日志信息.有这么多可用的…
java 世界中Annotation 在github上开始汇总一些自己学习,收集,总结,经验的一些信息,有利于跟踪,修改,提升.如果你感兴趣 可以关注一下,也可以提供自己的内容进来. https://github.com/dchack/java_read_learn/blob/master/java/base/annotation.md 描述数据的数据xml也是做这件事,引入Annotation是因为xml数量增加,可以分散在不同位置,维护对开发编程了负担.但是,事实上引入xml这种描述数据的工…
从Swift正式公布到现在,我基本一直在关注和摸索Swift.对于一门新语言来说,开荒阶段的探索自然是激动人心的,但是很多时候,资料的缺失和细节的隐藏也让人着实苦恼.最近几天的感受是,Swift 并不像我上一篇表达自己初步看法的文章里所说的那样,相对于 objc 来说有更好的学习曲线.甚至可以说 objc 在除了语法上比较特别以外,其概念还是比较容易的.而 Swift 在漂亮的语法之后其实隐藏了很多细节和实现,而如果无法理解这些细节和实现,就很难明白这门新语言在设计上的考虑.在实际编码中,也会有…
建议112:将现实世界中的对象抽象为类,将可复用对象圈起来就是命名空间 在我们身边的世界中,对象是什么?对象就是事物,俗称“东西”.那么,什么东西算得上是一个对象呢?对象有属性.有行为.以动物为例,比如猫(Cat).Cat可以有Name,这就是属性:Cat有一个恶习ScratchSofa(挠沙发),这就是行为.我们把这些属性和行为结合起来,就称为一个类型: class Cat { public string Name { get; set; } public void ScratchSofa()…
CSS世界中那些说起来很冷的知识 最近读了张鑫旭的新书<CSS世界>收获了不少对CSS的深度理解 也正值个人在公司内部进行部分章节的内容分享,于是顺带着直接把我即将分享的内容先给大家过过目了,就当省去了大家买了书后,无暇顾及观看的尴尬吧! 本书的最后三章分别是 元素的显示与隐藏 用户界面样式 流向的改变 下面我就直接进入主题,开始对每一章节进行一个非系统的分享了 元素的显示与隐藏 使用CSS让元素不可见的方法很多,剪裁.定位到屏幕外.透明度变化等都是可以的.虽然它们都是肉眼看不见,但背后却在多…
常用符号:+ ++ - -- || / /' && 等 这些基本上每天都能用到,但是 js 世界中有些特殊符号是不常用的,我也是偶然在阅读大神代码的时候发现的,一番查找之后得出了以下结论 特殊符号 意义 ~ 按位取反 ~~ 浮点数取整 !! 变量转换为 bollean 类型 ~按位取反 其实不太常用 1在计算机中的值:0000001 取反后:11111110(这是一个负数,反码=补码+1) 补码:11111101(那么补码=反码-1) 原码:10000010(十进制为-2) 例: ~5 =…