投稿

4月, 2023の投稿を表示しています

C#でログ機能を実装(自作)

イメージ
ログ機能を実装(自作) C#にログ機能を実装(自作) 皆さんはアプリを作成した際に、ログなどを残していますでしょうか。 ログを残すことで、エラーが発生した際などに何が原因だったのか調査しやすかったり、逆に想定通りの挙動をしているか確認することにも使うことができます。 ネットを探せば便利なログ出力のライブラリは多数存在しますが、今回は ログファイルを出力する (作成する)クラスを自作で作成してみたいと思います。 なぜわざわざ自作をするのかですが、別に特別難しい処理を実装するわけではないので、自らコードを書いてみて勉強したいという意図があります。 ログ出力の方法を考える まずはログの出力方法ですが、ざっくり2種類あると思っています。 「 アプリ実行後にログファイルを出力する方法 」と「 継続的に1つのファイルに書き込んでいく方法 」です。 ざっくり上記2つの処理イメージを整理していきます。 アプリ実行後にログファイルを出力する方法 これはstaticのListを用意しておき、メッセージをListに追加していきます。 アプリ処理の最後にListのデータをテキストファイルなどに書き込んで保存します。 この方法のメリットは、アプリの実行ごとにログファイルを作成するので、ファイル名などに処理日時を埋め込んでおけば調査などが容易になります。 デメリットとしては、ちゃんと例外処理などを実装していないとファイル出力処理が実行できずログが確認できない状態になります。 継続的に1つのファイルに書き込んでいく方法 この方法は、書き込むファイルを指定しておくことで処理が行われるたびにファ

英単語間以外の空白を削除したい(正規表現)

イメージ
英単語間以外の空白を削除したい 英単語間以外の空白を削除したい(正規表現) 最近、スクレイピングで取得していたニュースをもとに文書生成のディープラーニングをできないか検討していてたのですが、テキストデータにある 英単語間以外の空白 が気になりました。 文書生成する際には、連続する○文字をもとに次の文字を予測するような動きになるので、この日本語間の空白がノイズになっているのではないかと。。 単純に半角と全角の空白文字を Replce で除去してしまえばよいかと思いましたが、こうすると英単語間の空白まで削除してしまいます。なので、あくまで下記のパターンのみ削除したいです。 全角文字 + 空白 + 全角文字 全角文字 + 空白 + 半角英字 半角英字 + 空白 + 全角文字 上記パターンに対処するプログラムを取り急ぎ作成したので、まとめておきます。 正規表現の準備 今回は C# でコーディングしていきますが、大半の言語は同じように記載できると思いますので参考にしてみてください。 まずは、先程のパータンを処理するためには、「半角英字」と「それ以外の文字」で分類する必要があります。 逆に言うとそれだけでよいのです! 半角英字 対象となる文字は「a」から「z」と「A」から「Z」です。 これは容易で、「 [a-zA-Z] 」のように記載することでマッチさせることができます。 上記以外の文字 「全角文字」というと複雑な書き方を思い浮かべてしまうかもしれないですが、「それ以外の文字」と記載すれば何となく分かるのではないでしょうか。