log.go 源码阅读
package main
import (
"github.com/Sirupsen/logrus"
"os"
"path/filepath"
)
func initLogger() error {
dirPath, _ := filepath.Abs(filepath.Dir(pConfig.Log.Path)) //获取日志文件目录
    if _, err := os.Stat(dirPath); os.IsNotExist(err) {  //检查目录是否存在
os.Mkdir(dirPath, 0775) //创建目录 存在潜在bug
}
file, err := os.OpenFile(pConfig.Log.Path, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666) //打开文件 权限:文件追加 文件创建 文件读写
    if err != nil {
return err
}
level, err := logrus.ParseLevel(pConfig.Log.Level) //设置日志级别
    if err != nil {
return err
}
    pLog = &logrus.Logger{
Out: file, //日志问价输出位置
Level: level, //日志级别
Formatter: new(logrus.JSONFormatter), //日志输出格式
}
    pLog.Infof("InitLogger: path: %s, level: %s, formatter: json", pConfig.Log.Path, level)
return nil
}
log.go 源码阅读的更多相关文章
- DM 源码阅读系列文章(六)relay log 的实现
		
2019独角兽企业重金招聘Python工程师标准>>> 作者:张学程 本文为 DM 源码阅读系列文章的第六篇,在 上篇文章 中我们介绍了 binlog replication 处理单 ...
 - 源码阅读系列:EventBus
		
title: 源码阅读系列:EventBus date: 2016-12-22 16:16:47 tags: 源码阅读 --- EventBus 是人们在日常开发中经常会用到的开源库,即使是不直接用的 ...
 - angular源码阅读,依赖注入的原理:injector,provider,module之间的关系。
		
最开始使用angular的时候,总是觉得它的依赖注入方式非常神奇. 如果你跳槽的时候对新公司说,我曾经使用过angular,那他们肯定会问你angular的依赖注入原理是什么? 这篇博客其实是angu ...
 - SparkConf加载与SparkContext创建(源码阅读一)
		
即日起开始spark源码阅读之旅,这个过程是相当痛苦的,也许有大量的看不懂,但是每天一个方法,一点点看,相信总归会有极大地提高的.那么下面开始: 创建sparkConf对象,那么究竟它干了什么了类,从 ...
 - CI框架源码阅读笔记4 引导文件CodeIgniter.php
		
到了这里,终于进入CI框架的核心了.既然是“引导”文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.c ...
 - CI框架源码阅读笔记3 全局函数Common.php
		
从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap ...
 - CI框架源码阅读笔记1 - 环境准备、基本术语和框架流程
		
最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时 ...
 - spdlog源码阅读 (3): log_msg和BasicWriter
		
4. log_msg和它的打手BasicWriter 在spdlog源码阅读 (2): sinks的创建和使用中,提到log_msg提供了存储日志的功能.那么到底在spdlog中它是怎么 起到这个作用 ...
 - 【 js 基础 】【 源码学习 】backbone 源码阅读(二)
		
最近看完了 backbone.js 的源码,这里对于源码的细节就不再赘述了,大家可以 star 我的源码阅读项目(source-code-study)进行参考交流,有详细的源码注释,以及知识总结,同时 ...
 
随机推荐
- 简单了解AJAX
			
// ajax的俩个版本: var xmlhttp; if(window.xmlHttpRequest){ xmlhttp = new xmlHttpRequest(); }else{ xmlhttp ...
 - CSS基础:层叠顺序和层叠上下文
			
简介 在考虑到两个元素可能重叠的情况下,层叠顺序决定了那个元素在前面,那个元素在后面,这是针对普通元素而言.而层叠上下文和块级格式化上下文 (BFC) 一样,基本上也是由一些 CSS 属性创建的,它单 ...
 - 不是标准execl转换处理方法
			
不是标准execl的主要原因就是原本的html.xml.txt尾椎的文件,更改成了xls尾椎的文件 面对这种问题,最开始我用了jawin.jar,但是始终会报错,NoClassDefFoundErro ...
 - HTML5的canvas标签制作黑客帝国里的简单画面
			
1.加入canvas标签 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> ...
 - winform 写App.config配置文件——IT轮子系列(八)
			
前言 在winform项目中,常常需要读app.config文件.如: var version = System.Configuration.ConfigurationManager.AppSetti ...
 - edit distance(编辑距离,两个字符串之间相似性的问题)
			
Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2 ...
 - 怎么分别javascript写在<head>里还是<body>里面?
			
怎么分别javascript写在<head>里还是<body>里面? 具体哪些语句写在<body>里,哪些语句写在<head>里 满意答案 BeginN ...
 - pg_restore数据库恢复指令
			
pg_restore restores a PostgreSQL database from an archive created by pg_dump. Usage: pg_restore [OP ...
 - Spring中IOC和AOP的理解
			
IOC和AOP是Spring的核心 IOC:控制反转:将创建对象以及维护对象之间的关系由代码交给了spring容器进行管理,也就是创建对象的方式反转了,交由spring容器进行管理. DI:依赖注入: ...
 - PHP_保留两位小数并且四舍五入(可用于精度计算)_保留两位小数并且不四舍五入
			
小数例子: PHP保留两位小数并且四舍五入 1 $n=0.1265489; 2 echo sprintf("%.2f", $n); // 0.13 大家可以看到我们用到了sprin ...