Example #1
0
/**
 * 测试服务进程的main函数
 */
func main() {

	/**
	 * 以下为tmlog后端协程工作代码
	 *
	 * 说明: tmlog主工作协程必须在main协程里面启动工作, 否则无法完成后台日志打印的工作
	 */

	// 传递给日志类的配置项 (配置项的含义参考 tmlog.go 代码里面的注释说明)
	// 说明: 这些配置实际可以放置到配置文件里,不过我们这里只是演示,直接就生成map了
	logConf := map[string]string{
		"log_notice_file_path":  "log/heiyeluren.log",
		"log_debug_file_path":   "log/heiyeluren.log",
		"log_trace_file_path":   "log/heiyeluren.log",
		"log_fatal_file_path":   "log/heiyeluren.log.wf",
		"log_warning_file_path": "log/heiyeluren.log.wf",
		"log_cron_time":         "day",
		"log_chan_buff_size":    "16",
		"log_flush_timer":       "1000",
		"log_debug_open":        "1",
		"log_level":             "31",
	}
	// 启动 tmlog 工作协程, 可以理解为tmlog的服务器端
	tmlog.Log_Run(logConf)

	/**
	 * 以下为tmlog前端实际打印日志工作代码
	 *
	 * 说明: 这些代码可以在单独的任何非 tmlog 协程之外工作, 包括main协程, 或者是某些业务处理协程
	 */

	//在main主协程里打印日志, 可以理解为tmlog的客户端往服务器端输入日志

	//打印日志1: 由tmlog生成logid, 生成log操作句柄, 打印notice和warning两条日志
	logHandle1 := tmlog.NewLogger("")
	logHandle1.Notice("[logger=logHandle1 msg='The notice message is test']")
	logHandle1.Warning("[logger=logHandle1 msg='The warning message is test']")

	//打印日志2: 调用方指定logid, 生成另外log操作句柄, 打印notice和warning两条日志
	//注意: 这里只是演示,为了追查问题方便, 一般情况不建议一个请求使用多个logid
	logHandle2 := tmlog.NewLogger("123456789")
	logHandle2.Notice("[logger=logHandle2 msg='The notice message is test']")
	logHandle2.Warning("[logger=logHandle2 msg='The warning message is test']")

	//打印日志3: 在一个单独协程里打印日志
	go LogTest()

	// hold 住 main协程不退出
	// 说明: 如果想一直运行程序, 可以把下面这行开启
	//select {}

	//sleep
	time.Sleep(time.Second * 5)

	//run done
	println("Log test programe run done.")
}
Example #2
0
/**
 * 单独协程函数测试打印日志
 *
 */
func LogTest() {
	logHandle3 := tmlog.NewLogger("987654321")

	logHandle3.Notice("[logger=logHandle3 msg='The notice message is test']")
	logHandle3.Warning("[logger=logHandle3 msg='The warning message is test']")
}