package main import ( "fmt" "git.swzry.com/zry/YAGTF/yagtf/tfelem" "git.swzry.com/zry/YAGTF/yagtf/timefmt" "time" ) func main() { printer := timefmt.NewTimePrinterEx() parser := timefmt.NewFormatParser(true) parser.AddExDataTag("level", func() timefmt.TimeElementEx { return tfelem.NewExDataElement(4, "level") }) parser.AddExDataTag("app", func() timefmt.TimeElementEx { return tfelem.NewExDataElement(64, "app") }) parser.AddExDataTag("msg", func() timefmt.TimeElementEx { return tfelem.NewExDataElement(2048, "msg") }) tf := timefmt.NewTimeFormatterEx(printer, parser, false) tf.ParseFormat("![-- :: ] : ") logtest(tf, "INFO", "test1.app", "hello, world") logtest(tf, "WARN", "test2.app", "hello, gensokyo") logtest(tf, "INFO", "test3.app", "the quick brown fox jumps over a lazy dog.") logtest(tf, "INFO", "test4.app", "Unicode Test With Emoji 1:โ˜โšก๐Ÿช๐Ÿ—๏ธ๐Ÿ‘จ, ๐Ÿ‘จ๐Ÿ’ก, ๐Ÿ“โœ”๏ธ. โ›ชโŒ๐Ÿ“. โ˜โšก, โ˜โšกโ›ช, โ›ช๐Ÿ”ฅ, ๐Ÿข๏ธ๐Ÿ“โœ”๏ธ.") logtest(tf, "INFO", "test5.app", "Unicode Test With Emoji 2:๐Ÿ‡จ๐Ÿ‡ณ, 1980 < ๐Ÿ“… < 2015, ๐Ÿ‘ถโœ–๏ธ1 = โœ”๏ธ; ๐Ÿ“… > 2015, ๐Ÿ‘ถโœ–๏ธ2 = โœ”๏ธ.") logtest(tf, "INFO", "test6.app", "Unicode Test With Emoji 3:๐Ÿ‘ฆโœ‚๐Ÿ”Œ, โšก๐Ÿ‘ฆ, ๐Ÿš‘๐Ÿฅ, ๐Ÿ˜ท๐Ÿ’‰, ๐Ÿ˜ท๐Ÿ˜ฑ, ๐Ÿ‘ฆโ˜ ๏ธ. ๐Ÿ‘ต๐Ÿฝ๐Ÿ˜ญ, ๐Ÿ’ดโšฐ๏ธ, ๐Ÿ‘ฎโšฐ๏ธโŒ, ๐Ÿ”ฅ๐Ÿ’€->โšฑ๏ธโœ”๏ธ.") logtest(tf, "INFO", "test7.app", "Unicode Test With Emoji 4:๐Ÿ‘ฆ๐Ÿšฌ๐Ÿš„, ๐Ÿ‘ฎ๐Ÿšญ, ๐Ÿ’ด, ๐Ÿ‘ฆ๐Ÿ‘ฟ, ๐Ÿ‘ฆ๐Ÿ’ฃ๐Ÿ’ฅ๐Ÿš”, ๐Ÿ‘ฎ๐Ÿ˜ฑ, ๐Ÿ‘ฎ๐Ÿ”ซ๐Ÿ‘ฆ, ๐Ÿ‘ฆโ˜ ๏ธ.") logtest(tf, "INFO", "test8.app", "Unicode Test With Chinese and Emoji: ้ญ”็†ๆฒ™ๅท่ตฐไบ†้‡่ฆ็š„๐Ÿ“š, ๅธ•็ง‹่Ž‰๐Ÿ‘ฟ.") } func logtest(tf *timefmt.TimeFormatterEx, level string, app string, msg string) { exdata := make(map[string]string) exdata["level"] = level exdata["app"] = app exdata["msg"] = msg fmt.Println(tf.Format(time.Now(), exdata)) }