1

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

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

log4j だけでなく、通常の MySQL ログも認識しています。ログファイルに関しては、MySQL で利用可能な情報よりも多くの情報が必要になる場合があります。Log4j は解決策かもしれませんが、MySQL テーブルに書き込む方法がわかりません。また、データベースが基本的なフィルタリングなどを実行できるように、ログテーブルにいくつかの関連付け(ユーザーIDなど)を保存したいと思います。これに関する指示は高く評価されています。

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

ありがとう!

4

3 に答える 3

2
  1. Log4j はモジュール式です。必要に応じて、ログをデータベースに書き込む独自のバックエンドを作成できます。実際、箱から出してすぐにJDBC アペンダーが付属していますが、そこに大きな赤い警告が表示されていることに注意してください。
  2. Hibernate の場合、すべての変更を追跡し、それらを特別な監査テーブルに記録するインターセプターとイベントに何かを構築することができます。
于 2009-04-29T21:58:28.713 に答える
1

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() { ... }
...
}
于 2009-04-29T22:22:42.930 に答える
0

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

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

于 2009-04-29T22:01:59.953 に答える