見出し画像

ログ分析ツールのWindows環境の問題を改善

今朝は6時まで寝てしまいました。
開発にはMacを使っているのでWindows環境のテストが不十分だったようです。いくつか問題を見つけたので改善しています。

  • Windowsのイベントログの文字コードがSHIFT-JISのため文字化けする

  • WIndowsのイベントログを取得する時に、コマンド実行のWindowが表示される

  • WIndowsのイベントログの検索時のタイムゾーンがJST固定

1つ目は、

Windowsの文字コードの設定をUTF-8にすれば解決すると思いますが、ほとんどの場合SHIFT-JISで使っているので読み込む時変換する必要があります。
変換自体は簡単です。

tr := japanese.ShiftJIS.NewDecoder()
utf8, _, err := transform.String(tr, sjis)

のようにすればOKでした。
できれば、自動判定したいところです。

2つ目も、TWSNMP FCの起動ツールで同じ問題を対策した時に作った関数

func getCmd(ctx context.Context, path string, params []string) *exec.Cmd {
	cmd := exec.CommandContext(ctx, path, params...)
	cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
	return cmd
}

を使えばできます。

3つ目も、

time.Now().Format("MST")

でできそうです。

1つ目の文字コードを自動判定する方法で悩んでいるうちに時間切です。

明日に続く

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。