読者です 読者をやめる 読者になる 読者になる

1.21 jigowatts

Great Scott!

NLogを使ってみる

C# Visual Studio

概要

ログ出力する際にNLogがよさそうなのでTutorialを少しやってみます。
http://nlog-project.org/

環境

Visual Studio Community 2015

インストール

パッケージマネージャコンソールより以下のコマンドを実行するとインストールできます。

PM> Install-Package NLog.Config

ファイルとコンソールに出力

コンソールアプリケーションでログ出力

ログレベルごとにログメッセージを書き込みます。

using NLog;
using System;

namespace NLogConsole
{
    class Program
    {
        private static Logger logger = LogManager.GetCurrentClassLogger();

        static void Main(string[] args)
        {
            logger.Trace("Sample trace message");
            logger.Debug("Sample debug message");
            logger.Info("Sample informational message");
            logger.Warn("Sample warning message");
            logger.Error("Sample error message");
            logger.Fatal("Sample fatal error message");

            Console.ReadKey(true);
        }
    }
}

コンフィグ

NLog.configファイルにログ出力先としてファイルとコンソールを指定して、それぞれにログレベルを設定します。

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">

  <targets>
    <target xsi:type="File" name="logfile" fileName="file.txt"
            layout="${date:format=yyyyMMddHHmmss} ${message}" />
    <target xsi:type="ColoredConsole" name="console" 
            layout="${longdate} ${uppercase:${level}} ${message}" />
  </targets>

  <rules>
    <logger name="*" minlevel="Info" writeTo="logfile" />
    <logger name="*" minlevel="Trace" writeTo="console" />
  </rules>
</nlog>

実行結果

ファイルは直下にInfoログ以上が出力されました。
layout="${date:format=yyyyMMddHHmmss} ${message}"と指定したフォーマットで日付も出力されてます。
f:id:sh_yoshida:20170317165648p:plain

ColoredConsoleを指定したので、コンソールには色付きでTraceログ以上が出力されました。出力内容もコンソール用の内容layout="${longdate} ${uppercase:${level}} ${message}"になってますね。
f:id:sh_yoshida:20170317165455p:plain


Gmailに出力

Gmailにも遅れるようなのでやってみます。

NLog.config

targetsにGmail用の設定を追記します。メールアドレスは適宜読み替えで。パスワードはGmailの二段階認証でアプリパスワードを発行しました。
このとき二段階認証にしてたので別のアプリパスワードを発行。
sh-yoshida.hatenablog.com

<target xsi:type="Mail" name="gmail"
        smtpServer="smtp.gmail.com"
        smtpPort="587"
        smtpAuthentication="Basic"
        smtpUserName="user@gmail.com"
        smtpPassword="password"
        enableSsl="true"
        from="user@gmail.com"
        to="user@gmail.com"
        cc="user@gmail.com"
        />

rulesにはログレベルにFatalを指定して追記しました。

<logger name="*" minlevel="Fatal" writeTo="gmail" />

実行結果

Fatalレベルのログだけメールで飛んできました。簡単♪

f:id:sh_yoshida:20170317172302p:plain

今回はこれくらいで。あとは実際に使うかもってなったらもう少し詳しく踏み込んで調べてみよう。

Visual Studio で README.md を追加して編集する

Visual Studio

概要

Visual StudioでREADME.mdを編集したくてもソリューションエクスプローラに表示されません。面倒だなと思いつつ毎回VSCodeでREADME.mdだけ編集したりしてましたが、Visual Studio上で出来るようにしてみました。

環境

Visual Studio Community 2015

READMEの作成

まずは新規にREADME.mdを作成してみます。ソリューションエクスプローラのソリューションのコンテキストメニューから[追加]-[新しい項目]を選択。

f:id:sh_yoshida:20170317161611p:plain

README.mdを追加。

f:id:sh_yoshida:20170317161619p:plain

[Solution Items]フォルダが追加されてその中にREADME.mdファイルができました。これでVisual Studio上で編集できるようになりましたぞ。

f:id:sh_yoshida:20170317161623p:plain

READMEの追加

既にREADME.mdがある場合は、同じように[追加]-[既存の項目]を選択。

f:id:sh_yoshida:20170317161633p:plain

ファイル選択ダイアログでREADME.mdを追加。

f:id:sh_yoshida:20170317161643p:plain

同様に[Solution Items]フォルダの中にREADME.mdファイルが表示されます。

f:id:sh_yoshida:20170317161652p:plain


これで毎回VSCodeでREADME.mdだけ編集なんてことはしなくてよくなりました\(^o^)/

2択で迷ったら

未分類

決められない選択

急遽会社の事情で転職をせざるを得なくなり、年始から転職活動を行っておりました。おかげでほとんどブログも更新できず…。それも終わりが見えてきました!

なんやかんやありまして、何社か内定を頂いた企業のうち最終候補2社まで絞り込んだのですが、期限ぎりぎりまで悩んでも決めきれないという事態発生!ここまで来たらどっちを選んでもそんなに変わらないだろうということでプログラマならプログラマらしくコード書いてプログラミングで決めました。


Choose your life

これでようやく転職先が決まったので解放される♪

転職活動について

記録としてスケジュール感だけでも残しておこうと思います。

転職について調べる

最初は図書館で転職系の書籍を何冊か借りて読みました。
真っ先に読み始めたのがこちら。

活躍できる条件をすべて揃えてから渡米する人はほとんどいない

「○○ができてから」などの理由で先延ばしにはしない方が良い。人生のステージが進むに従って実現がさらに困難になる。というような言葉に大変励まされました。
書いてある内容は素晴らしいのですが、よく考えてみたら海外に行く予定はなかった。正月休みが終わる。

転職エージェントに登録する

基本的な知識を蓄えた後に転職エージェントに登録をしました。
最初に100社くらいの求人情報を紹介してもらい、最終的に15社に絞り込みを行って書類選考に提出してもらうのですが100件全部に目を通すのたいへん!そして1月が終わる。

そして面接へ...

書類選考で何機か失いましたが、選考が通った中から7社まで絞り込みを行い、企業によってはテストを受けたりして一次面接へたどり着きました。
履歴書、職務経歴書を練り込み、面接対策として自己紹介(自己PR)、志望動機、退職理由、強み弱み、キャリアビジョン、質問事項を用意します。その間人生初のインフルエンザで1週間のタイムロス。この時点で2月中旬。
なんとか上手いこといって全部二次面接(最終)まで漕ぎつけ、最終的に6社から内定頂きました。さすが売り手市場☆彡

所感

今回決まった期限で転職を行う必要がありまして、職務経歴書の作成や面接対策、仕事終わってからの面接など、しんどいと思うことが多々ありました。あっちこっち行ったので電車代も地味にかかります。それでも今は売り手市場なので複数の内定を頂けたのは幸運でした。自分自身を改めて振り返るいい機会になりましたし、市場価値を高めることの重要性も実感できました。

春から新しい環境で働くことになります。
不安はたくさんありますが、やるだけのことは全てやってみます!