1つの パッケージメイン 2 。3 インポート( 4 "FMT" 5 "OS" 6 "のStrConv" 7 "時間" 8 。9 "github.com/hpcloud/tail" 10 ) 。11 12である FUNCメイン(){ 13である // 新しい共促進剤チェンは、ファイルに書き込まれた 14 )ゴーwriteSteam( 15 16 ファイル名:= "./my.logを" 。17 tailfs、ERR = tail.TailFile(ファイル名、{tail.Config 18は REOPEN: trueに、 //ファイルが削除またはパック、再度開く必要がありさ 19に フォローを: trueに、 // リアルタイム追跡 20 場所:&tail.SeekInfo {オフセット:0、WHENCE:2}、// プログラムに異常がある場合は、最後の読み取り位置を保存します再読み込みを避けるために。 21 MustExist:偽、 // ファイルが偽のプログラムの導入は、終了していないかどうか、存在しない場合は 22 投票を: trueに、 23 }) 24 25 IF ERR =!nilの{ 26 fmt.Println( "tailfを失敗し、ERR:" 、ERR ) 27 リターン 28 } 29 30 * VARのMSG tail.Line 31であるが VaRのBOOL OK 32 33である ため に本当の{ 34は OK = <、MSG - tailfs.Lines 35 // OKファイルがリセットされ、再読み込みする必要があるのであれば、パイプを閉じたか否かを判断します新しいパイプライン 36 37 [ IF!OK { 38は fmt.Println( "閉じるtailf失敗は、ファイル名再度開く:" 、ファイル名) 39が 続行 40 } 41れる fmt.Println( "テキスト" 、msg.Text) 42である } 43が 44である FMT。 println( "テールエンド" ) 45 } 46です 47 FUNCのwriteSteam(){ 48 F、ERR:= os.OpenFile( "./ my.log"、os.O_APPEND | os.O_CREATE | os.O_RDWR、0644 ) 49 もし!ERR = nilの{ 50 fmt.Println( "開いているファイルは、ERR、失敗した:" 、ERR) 51 } 52 53 用 I:= 0; I <100; I ++ { 54 f.WriteString( "書込み値" + strconv.Itoa(I)+ "\ n" ) 55 time.Sleep(2 * time.Second) 56 } 57 }