質問

私のアプリケーションの環境:Webベース、Spring MVC + Security、Hibernate、MySQL(InnoDB)

私は、Webインターフェースから操作する小さなデータベースアプリケーションで作業しています。保存されたデータを処理する特定の既知のユーザーがいます。ここで、ユーザーがデータベース上で実行するすべての作成/更新/削除アクションを追跡し、単純な「リストのような」ものを作成する必要があります。これからの報告。今のところ、「ログ」を考えています。テーブル(列:userId +タイムスタンプ+説明など)。このテーブルにログ行を挿入するC(R)UD操作でアスペクトが発生する可能性があると思います。しかし、これがどのように行われるべきかはわかりません。

また、通常のMySQLログとlog4jについても認識しています。ログファイルに関しては、MySQLで利用できる情報よりも多くの情報が必要になる場合があります。 Log4jは解決策かもしれませんが、MySQLテーブルに書き込む方法がわかりません。また、ログテーブルにいくつかの関連付け(たとえば、ユーザーID)を保存して、dbに基本的なフィルター処理などを行わせたいと思います。

何をお勧めしますか? Hibernate / Springに組み込みのサポートもありますか、それともlog4jが正しい方法ですか?

ありがとう!

役に立ちましたか?

解決

  1. Log4jはモジュール式です。必要に応じて、ログをデータベースに書き込む独自のバックエンドを作成できます。実際、 JDBCアペンダーも付属しています。 すぐに使用できますが、大きな赤い警告が表示されます。
  2. Hibernateの場合、おそらくすべての変更を追跡し、特別な監査テーブルに記録するインターセプターとイベント

他のヒント

C(R)UD操作ログにMappedSuperclassを使用することを検討しましたか?

@MappedSuperclass
public class BaseEntity {
@Basic
@Temporal(TemporalType.TIMESTAMP)
public Date getLastUpdate() { ... }
public String getLastUpdater() { ... }
...
}

@Entity class Order extends BaseEntity {
@Id public Integer getId() { ... }
...
}

ロギングソリューションを探して自分でそれを探している場合は、JDBCAppenderを検索してみてください。完璧ではありませんが、機能するはずです。

一元化されたロギングのために既製の製品が必要な場合- logFaces を試すことを検討してください。独自のデータベースに直接(開示:私はこの製品の著者です。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top