GeneXus 15の新機能 その5 ~Log4jとの連携~

日本でもGeneXus 16のリリースが近づいていますが、GeneXus 15の新機能を紹介したいと思います。
GeneXus 15 Upgrade 11(日本では未リリースのため、実質Upgrade 12)からJavaのロギングユーティリティの「Log4j」と連携できるようになりました。

実装方法

「Log」という外部オブジェクトがGeneXusモジュール内に追加されております。
EventsエレメントやSourceエレメントなどに、下記のように外部オブジェクトを呼び出すコードを記載します。

メソッドとしては、各ログレベルを指定します。

  • Fatal
  • Error
  • Warning
  • Info
  • Debug
  • Write

Writeメソッドは第3引数にFatal~Debugのログレベルを指定する以外は、他のメソッドを使用した場合と出力結果は同じです。

出力レベルの設定

設定パネルのGeneratorの Log level プロパティで、出力レベルを指定できます。

Generatorのログの設定

ここで指定した以上のログレベルのログが出力されます。
例えば Log level プロパティに”2. Error”を指定した場合には、ログレベルがFatalとErrorのログが出力されます。

出力結果

アプリケーションフォルダの直下にlogsフォルダが作成され、Generatorの Log file プロパティで指定したファイル名に、下記のように出力されていました。

ERROR 2018-11-14T10:52:47,278 3914804 テスト [http-nio-8080-exec-36] WebPanel1

また、ログファイルの管理として、下記のように1時間毎にログファイルを移動&リネームしていました。

アプリケーション\logs\old\app-2018-11-14-09-1.log
アプリケーション\logs\old\app-2018-11-14-10-1.log

まとめ

これまでGeneXusでLog4jと連携するには手動で外部オブジェクトを作成し、propertiesファイルを用意して・・・と面倒だったのですが、簡単に利用できるようになりました。

 

システム開発のご相談はこちらからお気軽にお問合せください。


4件のコメント

  1. いつも拝見しております。
    有益な情報ありがとうございます。

    アプリケーションをデプロイ後、「Log4j」の設定変更を行いたい場合、
    何処を編集することになりますでしょうか。
    よろしければご教授ください。

    1. こんにちは。カサレアルの渡邊と申します。
      たいした情報を記載していませんが、ご参考になれば幸いです。

      ご質問いただいた、デプロイ後のLog4jの設定変更ですと、下記のファイルを編集することで可能ではないでしょうか。
      アプリのデプロイ先\WEB-INF\classes\log4j2.xml
      動作確認しておりませんが、出力レベルや出力先のパスの情報が出ていました。

      1. ご返信ありがとうございます。
        「classes」の配下となるとデプロイ後に修正するか、Fileオブジェクトとしてエクスポートファイル設定するかでしょうか…
        GeneXusにてxmlの優先参照先が指定できれば理想的でした。

        大変勉強になりました。
        ありがとうございます。

        1. ご要望の意図とずれているかもしれませんが、
          デプロイ先の環境によって設定を変えたいということでしたら、
          設定パネルで環境(environment)を複数作成することで、
          GeneXus内のみで完結できるかと思います。

          また、ターゲット環境のディレクトリにxmlが出力されておりますので、
          デプロイ前であればこちらを管理・修正すれば、
          1つの環境でも設定の変更ができそうです。
          なお、こちらはビルドの度に上書かれるようですのでご注意ください。

          ご参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です