当前位置:首页 » 编程语言 » java日志管理

java日志管理

发布时间: 2022-03-05 06:26:33

java日志怎么处理

提供个思路给你。用户登录的时候在登录方法中执行log,顺便记录登录时间,获取ip地址。其实困难的就是做了什么操作,这里可以使用spring的AOP来实现。如果没有spring 的话,可以在每个 增删改查 的事件里增加一个标识,这样基本就可以实现了~~

❷ java如何做系统操作日志

手头没有代码,用文字书写比较麻烦,说说思路吧:
1):操作日志与每一个人的系统权限密切相关,在前期定义权限的时候,必须区分好每一个用户级别的权限(一级菜单与菜单下具体功能),需要用多张表进行权限标识,并且建立各个表之间的关联关系(具体设置此处略)。
2):当用户点击系统内每一个功能(每一个功能按钮)的时候,一方面实现按钮功能(新建按钮实现新建功能),另外一方面将此处的功能名称、模块名称、用户名、时间等信息一并存储到用户操作表里面。
3):在用户操作查询页面输入相应的条件,在用户操作表内查询即可。

❸ 如何用Spring进行日志管理

可以用spring aop 进行日志管理,下面是我博客中的内容,项目中也是这么用,只是复杂度更高:


第一步:导包,可以参考:spring4 项目搭建

还需要添加AspectJ(java中最流行的aop框架):

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.2.2.RELEASE</version>
</dependency>

第二步:配置bean文件

配置aop可以通过注解,也可以通过配置文件,项目中建议有配置文件,这样便于修改。我先讲解注解方法

配置自动扫描和AspectJ框架

<!--配置自动扫描的aop包-->
<context:component-scanbase-package="com.spring.aop"/>
<!--配置AspectJ-->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

如果aop显示不出来就先xml头文件中导入(我相信大家会导入的,就不多说了)

xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsd


第三步:业务代码,模拟用户的操作


业务代码AopService

packagecom.spring.aop;
importorg.springframework.stereotype.Service;
@Service
publicclassAopService{
//用户登入
publicvoidlogin(){
System.out.println("登入成功");
}
//用户退出
publicvoidloginOut(){
System.out.println("用户退出系统");
}

//用户操作
publicvoidwriteABlog(){
System.out.println("用户编写博客");
}
//用户操作
publicvoiddeleteABlog(){
System.out.println("用户删除博客");
}
}


切面代码:

packagecom.spring.aop;
importorg.aspectj.lang.JoinPoint;
importorg.aspectj.lang.annotation.After;
importorg.aspectj.lang.annotation.Aspect;
importorg.springframework.stereotype.Component;
@Component
@Aspect
publicclassLogAspect{
@After("execution(publicvoidcom.spring.aop.AopService.*(..))")
publicvoidafterMethod(JoinPointjoinPoint){
Stringopreate=joinPoint.getSignature().getName();
System.out.println("ITDragonopreate"+opreate);
}

}

测试类:

packagecom.spring.aop;
importorg.junit.Test;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.;
publicclassAopTest{

privateApplicationContextctx=null;

{
ctx=new("beans.xml");
}
@Test
publicvoipTest(){
AopServiceaopService=(AopService)ctx.getBean("aopService");
aopService.login();
aopService.writeABlog();
aopService.deleteABlog();
aopService.loginOut();
}
}


测试结果:

登入成功
ITDragonopreatelogin
用户编写博客
ITDragonopreatewriteABlog
用户删除博客
ITDragonopreatedeleteABlog
用户退出系统
ITDragonopreateloginOut


@Before:前置通知, 在方法执行之前执行
@After:后置通知, 在方法执行之后执行
@AfterRunning:返回通知, 在方法返回结果之后执行,方法必须有返回值。需要添加returning = "result",其中result就是返回结构,

@AfterReturning(pointcut="execution(publicvoidcom.spring.aop.AopService.*(..))",returning="result")

@AfterThrowing:异常通知, 在方法抛出异常之后,有异常的时候才执行

@AfterThrowing(pointcut="execution(publicvoidcom.spring.aop.AopService.*(..))",throwing="e")

@Around:环绕通知, 围绕着方法执行

@Component:标识该类受spring管理
@Aspect: 标识该类是一个切面

execution(public void com.spring.aop.AopService.*(..)) : 切入点签名表达式,用*号表示所有,也可以指定,括号内两点表示多个变量,也可以指定,还可以用 && , || , !;以每个execution为一个单位

JoinPoint:连接点,该参数可以访问到更多的数据,还有很多方法可以自己试试。

@Order(n):切面执行的优先级,n值越小,越优先执行

还有重用切面,等知识我就不过多描述了,毕竟是入门,讲一些常用的就可以了。


使用xml配置文件


packagecom.spring.aop;
importorg.aspectj.lang.JoinPoint;
publicclassLogAspect{
publicStringafterMethod(JoinPointjoinPoint){
Stringopreate=joinPoint.getSignature().getName();
System.out.println("ITDragonopreate"+opreate);
return"";
}
}


配置文件:

<!--扫描切面类-->
<beanclass="com.spring.aop.LogAspect"id="logAspect"></bean>

<!--aop配置-->
<aop:config>
<!--切点-->
<aop:pointcutexpression="execution(publicvoidcom.spring.aop.AopService.*(..))"id="aop"/>
<!--切面:ref的值是切面类的id-->
<aop:aspectid="aspect"ref="logAspect">
<!--前置方法:pointcut-ref的值是切点的id-->
<aop:beforemethod="afterMethod"pointcut-ref="aop"/>
</aop:aspect>
</aop:config>

还是一样的测试方法,其结果为:

ITDragonopreatelogin
登入成功
ITDragonopreatewriteABlog
用户编写博客
ITDragonopreatedeleteABlog
用户删除博客
ITDragonopreateloginOut
用户退出系统

在需要打印日志的地方添加切入点即可。切入点函数名尽量见名知意。这样切面函数才能通用。

❹ java日志管理怎么获取到方法耗时

Java中记录方法运行时间的方法:
在方法开始的时候读取一下当前系统时间,以毫秒为单位;
然后在方法结束的时候再读取一下系统当前时间,然后做时间差即是方法运行的时间。

❺ java项目的后台管理中如何使用log4j来实现日志操作管理

导入log4j的jar包,配置log4j的信息,在系统初始化的时候加载log4j,在有代码的地方使用

❻ java开发怎么做日志功能 就是记录用户每一步的操作具体做什么了

细说起来,还算是比较麻烦的。大概给你个思路:
要记录操作日志,还能查看,那肯定得需要把操作记录保存起来——直接保存到数据库即可。
日志管理模块的话,因为有上边的日志记录了,做个删查的功能应该好做。这块就不细说了。

最主要的地方:怎样记录日志。思路如下:
先分析好需要记录哪些日志,这个一般都记录新增、修改、删除数据的操作。另外有些特殊的查询操作也要记录。

其实是如何记录。一开始提到了日志入库。现在有个问题是什么时候来做个逻辑。这个时机一般也是访问者发起操作时就开始做。比如说在action或者servlet或者controller的对应的方法体里开始记录。当然这需要写好日志入库的逻辑。

其实这个日志管理也是个比较完整的功能块,甚至可以是个小系统。也有许多小细节和解决方案。思路有了,如何实现就根据情况而定吧。

❼ java做的系统是否可以在操作日志或系统日志中记录系统的阻断、提示类信息,如何实现

看了一下,楼主是表达,记录考生与B系统的交互信息吗?个人认为:这样的信息要分等级的,不是任务信息都要记录下来,重要的记录下来。可以这样设计,把信息分等级,如:1,2,3,错误,异常,警告。设计出一张记录这样信息的表,【id,信息级别,信息内容,交互者,创建时间。。】 在考生使用B系统时,根据操作的行为来划分信息级别。把信息插入数据库。。不知道是不是这样?

❽ 求一个java上的日志管理的代码,怎么写

log4j 一般日志管理要么是把日志写成日志文件要么把日志写道数据库
log4j 写文件方便
logback可以写数据库方便

❾ Java历史操作日志

使用log4j。将日志输出级别定位debug,如果你用的是jdbc,就在sql后面输入日志。如果用的是mybatis,在log4j的配置文件中加入下面代码,可以将mybatis执行的sql直接打印出来
#mybatis在log4j中输出SQL
log4j.logger.com.springframework=DEBUG
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG

热点内容
手机路由器如何登陆密码 发布:2025-01-12 18:35:41 浏览:463
电光猫无法连接服务器是什么原因 发布:2025-01-12 18:32:58 浏览:512
迷你世界测试服的密码从哪里打开 发布:2025-01-12 18:25:32 浏览:109
我的世界手游tis服务器 发布:2025-01-12 18:24:28 浏览:585
青海省分布式服务器云主机 发布:2025-01-12 18:12:03 浏览:476
英雄联盟安卓手机版怎么切换 发布:2025-01-12 18:10:53 浏览:381
q5尊享时尚型哪些配置 发布:2025-01-12 18:05:41 浏览:229
安卓版本哪里下载 发布:2025-01-12 18:05:39 浏览:557
mc服务器搭建搜不到 发布:2025-01-12 17:57:37 浏览:18
手机手势密码忘了怎么办 发布:2025-01-12 17:14:51 浏览:487