99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

go語言中log寫人文件 go語言日志

Go語言之log(如何將日志寫到指定文件里面)

對于Go語言的日志來說,如何將log寫到指定的文件里面,下面是一個例子。

創新互聯公司專業為企業提供海陽網站建設、海陽做網站、海陽網站設計、海陽網站制作等企業網站建設、網頁設計與制作、海陽企業網站模板建站服務,10多年海陽做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

output:

output:

golang 怎樣控制自己實現log的位置

log是日志文件可以用記事本,直接打開查看內容,具體方法為:

1、Log文件上右鍵,然后選擇【打開方式】--再選擇【記事本】,如下圖所示。

2、之后我們就可以查看到Log文件內容了,如下示意圖所示。

有時候時間記事本打開某些Log文件里面全是亂碼又或者Log文件太大,比如超過100M,那么使用Windows自帶的記事本就無法打開此類Log文件,需要借助一些更為專業的Log文件查看器。具體步驟如下:

1、首先下載LogViewPro工具。

2、下載后解壓文件,然后直接運行名為“LogViewPro”應用程序文件即可打開軟件即可。

3、接下來我們再從頂部左側的【文件】菜單選擇【打開】。

4、最后通過瀏覽,找到電腦中的Log文件,將其打開即可。

Go語言基礎語法(一)

本文介紹一些Go語言的基礎語法。

先來看一個簡單的go語言代碼:

go語言的注釋方法:

代碼執行結果:

下面來進一步介紹go的基礎語法。

go語言中格式化輸出可以使用 fmt 和 log 這兩個標準庫,

常用方法:

示例代碼:

執行結果:

更多格式化方法可以訪問中的fmt包。

log包實現了簡單的日志服務,也提供了一些格式化輸出的方法。

執行結果:

下面來介紹一下go的數據類型

下表列出了go語言的數據類型:

int、float、bool、string、數組和struct屬于值類型,這些類型的變量直接指向存在內存中的值;slice、map、chan、pointer等是引用類型,存儲的是一個地址,這個地址存儲最終的值。

常量是在程序編譯時就確定下來的值,程序運行時無法改變。

執行結果:

執行結果:

Go 語言的運算符主要包括算術運算符、關系運算符、邏輯運算符、位運算符、賦值運算符以及指針相關運算符。

算術運算符:

關系運算符:

邏輯運算符:

位運算符:

賦值運算符:

指針相關運算符:

下面介紹一下go語言中的if語句和switch語句。另外還有一種控制語句叫select語句,通常與通道聯用,這里不做介紹。

if語法格式如下:

if ... else :

else if:

示例代碼:

語法格式:

另外,添加 fallthrough 會強制執行后面的 case 語句,不管下一條case語句是否為true。

示例代碼:

執行結果:

下面介紹幾種循環語句:

執行結果:

執行結果:

也可以通過標記退出循環:

--THE END--

如何在 Go 語言中用 Beats 開發 Logstash 插件

配置環境

在OSX系統上很容易安裝GO的可執行文件:

brew?install?go

雖然Java或Ruby?(或者任何我知道的語言)?可以在本地文件系統的任何地方使用命令,,但是Go項目必須使用單一專用的地址,,并且在$GOPATH環境變量下可用。

第?1?段(可獲?1.54?積分)

R?e;?7個月前?

創建項目對于Logstash插件,Beats項目可以從模板創建。官方文檔的說明十分簡單。鑒于Go對文件系統上的位置的嚴格要求,只需按照以下說明生成一個新的即可使用的Go項目。默認模板代碼將在控制臺中重復發送帶增量計數器的事件:./redditbeat?-e?-d?"*"

2016/12/13?22:55:56.013362?beat.go:267:?INFO

Home?path:?[/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat]

Config?path:?[/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat]

Data?path:?[/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat/data]

Logs?path:?[/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat/logs]

2016/12/13?22:55:56.013390?beat.go:177:?INFO?Setup?Beat:?redditbeat;?Version:?6.0.0-alpha1

2016/12/13?22:55:56.013402?processor.go:43:?DBG??Processors:?

2016/12/13?22:55:56.013413?beat.go:183:?DBG??Initializing?output?plugins

2016/12/13?22:55:56.013417?logp.go:219:?INFO?Metrics?logging?every?30s

2016/12/13?22:55:56.013518?output.go:167:?INFO?Loading?template?enabled.?Reading?template?file:

/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat/redditbeat.template.json

2016/12/13?22:55:56.013888?output.go:178:?INFO?Loading?template?enabled?for?Elasticsearch?2.x.?Reading?template?file:

/Users/i303869/projects/private/go/src/github.com/nfrankel/redditbeat/redditbeat.template-es2x.json

2016/12/13?22:55:56.014229?client.go:120:?INFO?Elasticsearch?url:?

2016/12/13?22:55:56.014272?outputs.go:106:?INFO?Activated?elasticsearch?as?output?plugin.

2016/12/13?22:55:56.014279?publish.go:234:?DBG??Create?output?worker

2016/12/13?22:55:56.014312?publish.go:276:?DBG??No?output?is?defined?to?store?the?topology.

The?server?fields?might?not?be?filled.

2016/12/13?22:55:56.014326?publish.go:291:?INFO?Publisher?name:?LSNM33795267A

2016/12/13?22:55:56.014386?async.go:63:?INFO?Flush?Interval?set?to:?1s

2016/12/13?22:55:56.014391?async.go:64:?INFO?Max?Bulk?Size?set?to:?50

2016/12/13?22:55:56.014395?async.go:72:?DBG??create?bulk?processing?worker?(interval=1s,?bulk?size=50)

2016/12/13?22:55:56.014449?beat.go:207:?INFO?redditbeat?start?running.

2016/12/13?22:55:56.014459?redditbeat.go:38:?INFO?redditbeat?is?running!?Hit?CTRL-C?to?stop?it.

2016/12/13?22:55:57.370781?client.go:184:?DBG??Publish:?{

"@timestamp":?"2016-12-13T22:54:47.252Z",

"beat":?{

"hostname":?"LSNM33795267A",

"name":?"LSNM33795267A",

"version":?"6.0.0-alpha1"

},

"counter":?1,

"type":?"redditbeat"

}

第?2?段(可獲?0.73?積分)

R?e;?7個月前?

關于命令行參數:-e記錄到標準err,而-d“*”啟用所有調試選擇器。有關參數的完整列表,請鍵入./redditbeat?--help。編碼Go代碼位于.go文件中(令人驚訝...)在$?GOPATH?/?src文件夾的項目子文件夾中。配置類型第一個有趣的文件是config?/?config.go,它定義了一個結構來聲明Beat的可能參數。至于前面的Logstash插件,讓我們添加一個subreddit參數,并設置它的默認值:type?Config?struct?{

Period?time.Duration?`config:"period"`

Subreddit?string?`config:"subreddit"`

}

var?DefaultConfig?=?Config?{

Period:?15?*?time.Second,

Subreddit:?"elastic",

}

第?3?段(可獲?0.89?積分)

R?e;?7個月前?

Beater?TypeBeat本身的代碼在beater?/?redditbean.go中找到。默認模板為Beat和三個函數創建一個struct:Beat構造函數—用來讀取配置:?func?New(b?*beat.Beat,?cfg?*common.Config)?(beat.Beater,?error)?{?...?}?

Run?函數-?需要覆蓋Beat的主要功能:?func?(bt?*Redditbeat)?Run(b?*beat.Beat)?error?{?...?}?

Stop?函數管理優雅關閉:?func?(bt?*Redditbeat)?Stop()?{?...?}?

Note?1:在Go中沒有明確的接口實現。實現了?interface?中的所有方法,即創建一個隱式繼承關系.?出于寫文檔的目的,這是?Beater?接口:type?Beater?interface?{

Run(b?*Beat)?error

Stop()

}

第?4?段(可獲?0.93?積分)

R?e;?7個月前?

因此,由于Beat結構實現了Run和Stop,它是一個Beater。Note?2:?在Go中沒有類的概念,所以方法不能在一個具體類型上聲明。但是,它存在擴展函數的概念:可以添加行為到一個類型(在單個包中)的函數。它需要聲明receiver?類型:這是在fun關鍵字和函數名之間完成的?-?這里是指Redditbeat類型(或者更準確地說,是一個指向Redditbeat類型的指針,但是這里有一個隱式轉換)。構造函數和Stop函數可以保持不變,無論什么特性都應該在Run函數中。在這種情況下,功能是調用Reddit?REST?API并為每個Reddit帖子發送一條消息。

第?5?段(可獲?1.59?積分)

R?e;?7個月前?

最終代碼如下所示:func?(bt?*Redditbeat)?Run(b?*beat.Beat)?error?{

bt.client?=?b.Publisher.Connect()

ticker?:=?time.NewTicker(bt.config.Period)

reddit?:=?""?+?bt.config.Subreddit?+?"/.json"

client?:=?http.Client?{}

for?{

select?{

case?-bt.done:

return?nil

case?-ticker.C:

}

req,?reqErr?:=?http.NewRequest("GET",?reddit,?nil)

req.Header.Add("User-Agent",?"Some?existing?header?to?bypass?429?HTTP")

if?(reqErr?!=?nil)?{

panic(reqErr)

}

resp,?getErr?:=?client.Do(req)

if?(getErr?!=?nil)?{

panic(getErr)

}

body,?readErr?:=?ioutil.ReadAll(resp.Body)

defer?resp.Body.Close()

if?(readErr?!=?nil)?{

panic(readErr)

}

trimmedBody?:=?body[len(prefix):len(body)?-?len(suffix)]

messages?:=?strings.Split(string(trimmedBody),?separator)

for?i?:=?0;?i??len(messages);?i?++?{

event?:=?common.MapStr{

"@timestamp":?common.Time(time.Now()),

"type":???????b.Name,

"message":????"{"?+?messages[i]?+?"}",

}

bt.client.PublishEvent(event)

}

}

}

第?6?段(可獲?0.09?積分)

R?e;?7個月前?

這里是對最重要的幾部分的解釋:line?4:?通過連接字符串創建Reddit?REST?URL,包括配置Subreddit參數。記住,它的默認值已在config.go文件中定義。line?5:?引用httpClient類型line?12:?創建新的HTTP請求。注意Go允許多個返回值。line?13:?如果沒有設置標準請求頭,Reddit的API將返回429狀態碼。line?14:?Go標準錯誤不通過異常處理,而是隨著常規返回值返回。根據Golang?wiki:指示調用者的錯誤條件,應通過返回錯誤值來完成line?15:?panic()?函數類似于在Java中拋出異常,?被處理時推到棧頂。?有關詳細信息,請查看相關文檔。line?17:?執行HTTP請求。line?21:?將響應主體讀入字節數組。line?22:?關閉主體流。注意defer關鍵字:defer語句延遲函數的執行,直到環繞的函數返回。line?26:?創建整個響應主體字節數組的切片?-?對數組的一部分的引用。實質上,它刪除了前綴和后綴以保持相關的JSON值。之后將字節數組解析成JSON。line?27:?分割切片以單獨獲取每個JSON片段。line?29:?將消息創建為簡單的字典結構。line?34:?發送。

第?7?段(可獲?3.11?積分)

R?e;?7個月前?

配置,?構建,?運行默認配置參數可以在項目根目錄下的redditbeat.yml文件中找到。請注意,redditbeat.full.yml中列出了其他常見的Beat參數,以及相關注釋。關于Beats的一個有趣的事情是,他們的消息可以直接發送到Elasticsearch或Logstash進行進一步處理。這在上述配置文件中配置。redditbeat:

period:?10s

output.elasticsearch:

hosts:?["localhost:9200"]

output.logstash:

hosts:?["localhost:5044"]

enabled:?true

第?8?段(可獲?0.78?積分)

R?e;?7個月前?

此配置片段將每10秒循環運行Run方法,并將消息發送到在localhost上運行的Logstash實例在端口5044上。這可以在運行Beat時被覆蓋(見下文)。注意:為了使Logstash接受來自Beats的消息,必須安裝Logstash?Beat插件,并且必須為Beats配置Logstash的input:input?{

beats?{

port?=?5044

}

}

要構建項目,請在項目的根目錄中鍵入make。它將創建一個可以運行的可執行文件。./redditbeat?-e?-E?redditbeat.subreddit=java

-E參數可以覆蓋在的redditbeat.yml配置文件中找到的參數(見上文)。在這里,它設置subreddit讀為“java”,而不是默認的“elastic”。

第?9?段(可獲?1.3?積分)

R?e;?7個月前?

輸出如下所示:2016/12/17?14:51:19.748329?client.go:184:?DBG??Publish:?{

"@timestamp":?"2016-12-17T14:51:19.748Z",

"beat":?{

"hostname":?"LSNM33795267A",

"name":?"LSNM33795267A",

"version":?"6.0.0-alpha1"

},

"message":?"{

\"kind\":?\"t3\",?\"data\":?{

\"contest_mode\":?false,?\"banned_by\":?null,?

\"domain\":?\"blogs.oracle.com\",?\"subreddit\":?\"java\",?\"selftext_html\":?null,?

\"selftext\":?\"\",?\"likes\":?null,?\"suggested_sort\":?null,?\"user_reports\":?[],?

\"secure_media\":?null,?\"saved\":?false,?\"id\":?\"5ipzgq\",?\"gilded\":?0,?

\"secure_media_embed\":?{},?\"clicked\":?false,?\"report_reasons\":?null,?

\"author\":?\"pushthestack\",?\"media\":?null,?\"name\":?\"t3_5ipzgq\",?\"score\":?11,?

\"approved_by\":?null,?\"over_18\":?false,?\"removal_reason\":?null,?\"hidden\":?false,?

\"thumbnail\":?\"\",?\"subreddit_id\":?\"t5_2qhd7\",?\"edited\":?false,?

\"link_flair_css_class\":?null,?\"author_flair_css_class\":?null,?\"downs\":?0,?

\"mod_reports\":?[],?\"archived\":?false,?\"media_embed\":?{},?\"is_self\":?false,?

\"hide_score\":?false,?\"spoiler\":?false,?

\"permalink\":?\"/r/java/comments/5ipzgq/jdk_9_will_no_longer_bundle_javadb/\",?

\"locked\":?false,?\"stickied\":?false,?\"created\":?1481943248.0,?

\"url\":?\"\",?

\"author_flair_text\":?null,?\"quarantine\":?false,?

\"title\":?\"JDK?9?will?no?longer?bundle?JavaDB\",?\"created_utc\":?1481914448.0,?

\"link_flair_text\":?null,?\"distinguished\":?null,?\"num_comments\":?4,?

\"visited\":?false,?\"num_reports\":?null,?\"ups\":?11

}

}",

"type":?"redditbeat"

}

當前文章:go語言中log寫人文件 go語言日志
文章出自:http://www.yijiale78.com/article42/dodcdec.html

成都網站建設公司_創新互聯,為您提供網站排名標簽優化外貿網站建設網站導航企業建站小程序開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司