【概要】
Conversationに格納している値がログに出ると良い。
Conversationは便利だが、複雑ではあるので、
こういった支援があるとある程度敷居が下がる。
RequestLoggingFilterのsession欄で出力されるととても見やすい。
既にsession情報としてConversationsImplのtoString()が呼び出されているので、
これをいい感じで実装するだけで実現が可能。
【詳細】
@Conversation(name = "member", phase = "list")
public class ListPage extends ListPageBase {
@Out(scopeClass = ConversationScope.class)
@Override
public Integer getCurrent() {
@Out(scopeClass = ConversationScope.class)
@Override
public ConditionDto getCondition() {
とした場合
<現状>
...
Response=org.apache.catalina.connector.ResponseFacade
[session] org.seasar.ymir.window.windowId._self=
- * * * * * * * * *
{END}: /member/search/list.html [00m01s063ms]
↓↓↓
<改善>
...
Response=org.apache.catalina.connector.ResponseFacade
[session] org.seasar.ymir.window.windowId._self={ConversationsImpl@fafd42 member (list) current = 3 condition = (abc=3,bbb=4,ccc=ABCACBAC, ...)}
* * * * * * * * * * {END}: /member/search/list.html [00m01s063ms]
DTOのtoString()は既に自動生成で実装されているので、
ConversationsImplのtoString()の実装だけで実現可能(なはず)。
Conversation.followAfterやOut.scopeNameやOut.actionNameを
出すべきかどうかちょと不明。
(全部出す必要はなくて、重要なものだけ出れば良いかと)
【補足】
優先度は低だが、重要度は高い。