saas-export项目-系统日志管理

系统日志管理

  • (1)分析
    记录用户的访问的Controller与ip等信息
    属于监控功能
    在这里插入图片描述
    只有查看与保存功能
  • (2)数据组成
    //设置登录用户信息 seesion获取
    //设置企业信息
    //IP地址 request获取
    //设置记录时间
    //执行的方法名称 新方法获取
    //执行的类名称
    在这里插入图片描述

系统日志管理实现

两个功能,一个是分页显示,一个是保存日志
》SysLog
》TestSysLogService
》ISysLogService,SysLogServiceImpl
》 ISysLogDao,ISysLogDao.xml
》SysLogController,xxx.jsp

Syslog

public class Syslog {
    private String id            ;
    private String userName      ;
    private String ip            ;
    private Date time            ;
    private String method        ;
    private String action        ;
    private String companyId     ;
    private String companyName   ;

TestSyslogService

@Test
    public void test01(){
        //分页列表
        //页面上显示分页列表,就要求业务方法中提供查询PageInfo的方法
        PageInfo<Syslog> pi= iSyslogService.findByPage(1,30,"1");
        l.info("pi = "+pi);
    }

    @Test
    public void test02(){
        //将一个表单数据保存在javaBean中,再将javaBean存到数据库
        Syslog sysLog = new Syslog();
        //设置登录用户信息
        sysLog.setUserName("老王");
        //设置企业信息
        sysLog.setCompanyId("1");
        sysLog.setCompanyName("吉首大学");
        //IP地址
        sysLog.setIp("192.168.10.11");
        //设置记录时间
        sysLog.setTime(new Date());
        //执行的方法名称
        sysLog.setMethod("toList");
        //执行的类名称
        sysLog.setAction("com.lfy.web.company.CompanyController");

        sysLog.setCompanyId("1");
        sysLog.setCompanyName("吉首大学");
        l.info("test02 sysLog="+sysLog);
        iSyslogService.saveSyslog(sysLog);
    }

ISyslogService

PageInfo<Syslog> findByPage(int currentPage, int pageSize, String companyId);

    void saveSyslog(Syslog sysLog);

SyslogServiceImpl

 @Override
    public PageInfo<Syslog> findByPage(int currentPage, int pageSize, String companyId) {
        //设置参数
        PageHelper.startPage(currentPage,pageSize);
        //调用全查
        List<Syslog> list=iSyslogDao.findAll(companyId);
        //包装成PageInfo
        PageInfo<Syslog> pi = new PageInfo<>(list);
        return pi;
    }

    @Override
    public void saveSyslog(Syslog sysLog) {
        String uuid= UUID.randomUUID().toString();
        sysLog.setId(uuid);
        iSyslogDao.save(sysLog);
    }

ISyslogDao

    List<Syslog> findAll(String companyId);

    void save(Syslog sysLog);

ISyslogDao.xml

<mapper namespace="com.lfy.dao.system.syslog.ISyslogDao">
    <!-- 配置映射 字段-->
    <resultMap id="syslogMap" type="sysLog">
        <id     column="id"           property="id"          />
        <result column="user_name"    property="userName"    />
        <result column="ip"           property="ip"          />
        <result column="time"         property="time"        />
        <result column="method"       property="method"      />
        <result column="ACTION"       property="action"      />
        <result column="company_id"   property="companyId"   />
        <result column="company_name" property="companyName" />
    </resultMap>
    <!--    List<SysLog> findAll(String companyId);-->
    <select id="findAll" parameterType="string" resultMap="syslogMap">
        select * from st_sys_log where company_id =#{companyId} order by time desc
    </select>

    <!--    void save(SysLog sysLog);-->
    <insert id="save" parameterType="sysLog">
            insert into st_sys_log values
                (
                #{id            },
                #{userName      },
                #{ip            },
                #{time          },
                #{method        },
                #{action        },
                #{companyId     },
                #{companyName   }
                )
    </insert>
</mapper>

SyslogController

@Controller
@RequestMapping("/system/syslog")
public class SysLogController extends BaseController {
    private static final Logger l = LoggerFactory.getLogger(SysLogController.class);
    @Autowired
    ISyslogService iSyslogService;

    @RequestMapping(path = "/toList", method = {RequestMethod.GET, RequestMethod.POST})
    public String toList(@RequestParam(defaultValue = "1") int currentPage, @RequestParam(defaultValue = "30") int pageSize) {
        l.info("toList currentPage="+currentPage);
        l.info("toList pageSize="+pageSize);

        //调查询分页列表的方法
        PageInfo<Syslog> pi = iSyslogService.findByPage(currentPage, pageSize, getLoginCompanyId());
        //将pi添加到页面
        request.setAttribute("pi", pi);
        return "system/log/log-list";
    }
}

log-list.jsp

<c:forEach items="${pi.list}" var="log"  varStatus="st">
    <tr>
        <td>${st.count }</td>
        <td>${log.userName }</td>
        <td>${log.ip}</td>
        <td>${log.action}</td>
    </tr>
</c:forEach>

优化日志列表

  • (1)分析
    日志记录多,生成的页号按钮多
  • (2)实现
    控制循环次数
    并进行边界判断
    在这里插入图片描述

page.jsp

<c:forEach begin="${pi.pageNum-5 <= 0 ? 1:pi.pageNum-5}" end="${pi.pageNum+5>pi.pages?pi.pages:pi.pageNum+5}" var="i">
    <li class="paginate_button ${pi.pageNum==i ? 'active':''}"><a href="javascript:goPage(${i})">${i}</a></li>
</c:forEach>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值