golangテール

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 [          IFOK {
 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 }

 

おすすめ

転載: www.cnblogs.com/chaselogs/p/11163025.html