質問

いj2ee webアプリケーションの春の枠組みを利用log4jのためのロギング私はこの私のlog4j.propertiesファイルです。これを挿入し、ログに私のデータベースです。設定方法を教えてください動的価値をメッセージ部分をできるよう、何らかの追加を現在ログイン中のユーザーです。Beanのオブジェクトを含む情報は、現在のユーザのアプリケーションのコンテキスト.

log4j.appender.dbLog.sql=挿入 ログイン(log_date,log_level, 場所、メッセージの値 ('%d{yyyy/MM/dd HH:mm:ss}','%-5p', '%C%L','%m)

役に立ちましたか?

解決

私はStrutsとのlog4jを使用していた私の「ユーザー情報」が、私のWebアプリケーションの場所VS「アプリケーションコンテキスト」に完全に一定ではないと私は似た(多分単純)の要件を持っていた、私はコードでそれを解決しましたこのような:

public class LogoutAction extends org.apache.struts.action.Action {

private Log log_db = LogFactory.getLog("mysql");

public ActionForward execute(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {

    log_db.debug("User: "+request.getRemoteUser()+" logged off");
    request.getSession().invalidate();
    your
}

}

そして、私のlog4jプロパティファイルに私はこのようなエントリを持っていました

log4j.logger.mysql=DEBUG, mysql
log4j.appender.mysql=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.mysql.layout=org.apache.log4j.PatternLayout
log4j.appender.mysql.URL=jdbc:mysql://localhost:3306/dbname?autoReconnect=true
log4j.appender.mysql.driver=com.mysql.jdbc.Driver
log4j.appender.mysql.user=user
log4j.appender.mysql.password=password
log4j.appender.mysql.sql=INSERT INTO log (Date, Logger, Priority, Message) VALUES ("%d","%c","%p","%m")
enter code here

そして結果は私の私のテーブルの行には、このようなデータを持っているというものであった。

'2010-03-15 21:49:46514'、 'mysqlの'、 'DEBUG'、 'ユーザー:ベンは、ログオフ'

私はこのことができます願っています。

他のヒント

使いたい MDC (マップ化された診断コンテキスト.この リンク 利用でのサーブレット.

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