開始する前に、「サポートされているログフレームワーク」を確認してください。

デフォルトでは、ログエンリッチメントは無効になっています。この機能を有効にするには、次のいずれかを true に設定します。

Node Property: enable-log-metadata-enrichment

Environmental Variable: appdynamics_log_metadata_enrichment

次のメタデータがログに追加されます。

  • appd_node_id
  • appd_request_guid
  • appd_bt_id

メタデータキーが defaultMeta に追加されると、エージェントはランタイムに正しい値でキーを更新します。ただし、キーが存在しない場合、キー値は appdynamics_log_metadata_fields 環境変数から決定されます。この場合、メタデータはログのメッセージフィールドに埋め込まれます。

構造化ログの場合は、ロガーでメタデータフィールドを定義する必要があります。ロガーで定義されたメタデータフィールドの例を次に示します。

User Defined Metadata Fields in Structured Log

const logger = winston.createLogger({
  level: 'debug',
  format: winston.format.json(),
  /* user adds the keys they want to see in the log output to the metadata */
  defaultMeta: {appd_node_id: '', appd_request_guid: '', appd_bt_id: ''},
  transports: [
    new winston.transports.File({ filename: 'message.log'}),
  ],
});
XML

非構造化ログの場合、メタデータフィールドは定義しません。ログ出力フィールドは、appdynamics_log_metadata_fields 変数から決定されます。ロガーの非構造化ログ設定の例を次に示します。

Undefined Metadata Fields in Unstructured Log

const logger = winston.createLogger({
  level: 'debug',
  format: winston.format.simple(),
  defaultMeta: {appd_node_id: '', appd_request_guid: '', appd_bt_id: ''},
  transports: [
    new winston.transports.File({ filename: 'message.log'}),
  ],
});
XML