楼主,你前台就传个userid的参数。。
调个接口找一下就行了呗。
多简单那。。
干吗还要这么费周折。
不过。。你这种敬业精神值得学习。
支持  UP:)

解决方案 »

  1.   

    传userid不是不行,但是涉及到另外一个问题,bo模块本来就和前台无关,何况现在项目里面bo部分会重用到另外一个非web模式的项目里面去,也就是bo里面最好能不修改。而我这样在基类加log的方法好处多的就是,只要在基类里面log调用另外一个log的工厂类,那么我想怎么处置bo的日志都可以了,可以用log4j,可以用system.out,也可以写数据库,但是现在写数据库就是需要userid的问题难解决.
      

  2.   

    事情很简单,能解决问题就行,编程绝不能教条,效率和变通是首位的
    要么传入user到bo
    要么在Web层log
      

  3.   

    用filter怎么样
    就是在用户操作前后通过filter实现各种log的纪录?
    我想是好的吧
      

  4.   

    如果是普通的小项目,倒是可以考虑onlyxu仁兄说的 变通一下,但是bo部分本来已经写好,而且内容很多,涉及到上百个po,修改bo会增加复杂性,而且还要重新测试,关键一点,bo部分重用性很强,需要做到至少3个产品模块里面去,其他模块很可能日志结构不一样,或许不需要userid.至于web层log,这个是没有办法的办法了,因为其他产品模块可能也需要日志,日志的内容其实一样。
    也就是其他产品的例如webservices层等都要重新写log内容.重复性工作比较多。
    reene2008说的filter实现log记录可以,但是这个还是web 层实现。
    看来如果实在没办法,只能web实现了
      

  5.   

    哈哈哈啊哈哈哈哈,
    我用ThreadLocal实现了,web 的action先初始化一个Log,然后bo部分的log方法根据ThreadLocal取得当前的Log实例,把logContent传给Log实例。Log实例在可以每个模块自己实现,例如在Web模块就用session 的user.在webservices模块就用
    requestHeader的user
    哈哈哈哈哈,不过,还没经过大范围的测试,不知道是不是有问题,如果没问题,哈哈,我就是天才啦。