java日誌管理
❶ 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