質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

ロギング

コンピュータにおけるロギングとは、コンピュータプログラミングにおける形跡を記憶することをさします。これは、システムのアクティビティの理解や、問題究明のために監査証明を残す目的でおこなわれます。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

0回答

2610閲覧

Spring Boot + JPA + HibernateでのDBアクセスの標準出力について

hrck19

総合スコア13

Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

ロギング

コンピュータにおけるロギングとは、コンピュータプログラミングにおける形跡を記憶することをさします。これは、システムのアクティビティの理解や、問題究明のために監査証明を残す目的でおこなわれます。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2019/02/21 12:22

編集2019/02/21 12:26

自身でも調べてみましたが、全く実現方式が見つけられないため質問させていただきます。
キーワードや「こんな処理を加えればできるかも」などのアドバイスでもよろしいのでご教示お願いします。

前提

  • Spring Boot + JPA + HibernateでDBアクセスをしている
  • application.propertiesを以下のように設定し、実行したクエリやそのパラメーターを

 標準出力している。

spring.jpa.properties.hibernate.show_sql=true spring.jpa.properties.hibernate.use_sql_comments=true spring.jpa.properties.hibernate.format_sql=true logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE logging.leve=debug

そして標準出力された結果例は以下です。

Hibernate: select itemdetail0_.id as id1_1_0_, itemdetail0_.type as type2_1_0_, itemdetail0_.data1 as data3_1_0_, itemdetail0_.data2 as data4_1_0_, itemdetail0_.data3 as data5_1_0_ from item_detail itemdetail0_ where itemdetail0_.id=? and itemdetail0_.type=? 2019-02-21 19:47:15.777 org.hibernate.type.descriptor.sql.BasicBinder TRACE binding parameter [1] as [INTEGER] - [1] 2019-02-21 19:47:15.783 org.hibernate.type.descriptor.sql.BasicBinder TRACE binding parameter [2] as [INTEGER] - [1]``` ###やりたいこと (概要) 標準出力されるパラメーターをマスキングできるのか (詳細) 上記例でいくと binding parameter [1] as [INTEGER] - [1] binding parameter [2] as [INTEGER] - [1] [1]という部分がクエリのパラメーターとなりますが、この値を[*]のようにマスキングしたいです。 目的としてはログにセンシティブな情報を残さないためです。 ###質問したいこと ・そもそも上記の「やりたいこと」で記載したことは実現可能か ・実現可能であればどのようなことをすればよいか ###利用技術 ・Spring Boot ・JPA ・Hibernate ・Log4J2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rubytomato

2019/02/21 14:25

bindingのログは出力したいが値だけはマスクしたいということでしょうか? それともbindingのログを出力しないということでも要件を満たせますか?
hrck19

2019/02/21 23:35

コメントありがとうございます。 前者です。 バインディングするパラメータの全てをマスクするのではなく、特定の値だけマスクしたログを出力するイメージです。
退会済みユーザー

退会済みユーザー

2019/02/21 23:51

マスクしたい値を特定できるなら、アペンダの自作かな
hrck19

2019/02/26 07:58

>asahina1979様 コメントありがとうございます。返信が遅くなり申し訳ありません。 少なくとも設定書き換えるといった方法ではできず アペンダの自作する必要がありそうであること、承知しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問