導航:首頁 > 編程語言 > java日誌實現

java日誌實現

發布時間:2022-09-02 15:43:34

java如何做系統操作日誌

手頭沒有代碼,用文字書寫比較麻煩,說說思路吧:
1):操作日誌與每一個人的系統許可權密切相關,在前期定義許可權的時候,必須區分好每一個用戶級別的許可權(一級菜單與菜單下具體功能),需要用多張表進行許可權標識,並且建立各個表之間的關聯關系(具體設置此處略)。
2):當用戶點擊系統內每一個功能(每一個功能按鈕)的時候,一方面實現按鈕功能(新建按鈕實現新建功能),另外一方面將此處的功能名稱、模塊名稱、用戶名、時間等信息一並存儲到用戶操作表裡面。
3):在用戶操作查詢頁面輸入相應的條件,在用戶操作表內查詢即可。

Ⅱ java怎麼寫日誌記錄,最好是完整的代碼!謝啦!

常用2種方式,具體你可以去自己寫,建議,編程前期主要靠你自己琢磨,他人給你思路即可。
1.用簡單的讀寫文件實現,寫一個寫文件的共用類,每次把日誌寫到文件里即可。
2.用開源免費的日誌工具,如log4j。
祝你成功!!

Ⅲ java程序中實現系統日誌功能怎麼做就是用來記錄使用系統的操作記錄的那種,有例子的話更好,在線等候...

其實系統日誌就是在系統操作者完成操作的同時,記錄操作的詳細信息,這個記錄功能一般是在操作者完成操作同時進行處理的。例如,系統使用者對某一個表完成了插入操作,那麼插入操作完成的同時,加一行代碼,或者在插入操作調用的存儲過程中加一段向程序日誌表內插入一條操作信息!
以後想要知道操作人的操作信息,檢索操作日誌表就可以了!
先建立一個操作日誌表,通常不止一個,按照操作分類添加!

Ⅳ 如何用java代碼實現日誌手動備份

寫個備份腳本,用代碼調用腳本這是比較簡單的方式

Ⅳ java怎麼運用切面編程生成日誌

1.首先創建一個自定義註解攔截Controller類,代碼如下
/**
* 自定義註解 攔截Controller
*/
@Target({ ElementType.PARAMETER, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ControllerLog {
String desc() default "";//標示默認列印空
}
2.創建一個列印日誌的切面類,引入切面註解@Aspect,
新建方法代碼如下:
// Controller層切點
@Pointcut("@annotation(org.springframework.web.bind.annotation.RequestMapping)")
public void recordLog() {
}
@Around("recordLog()")
public Object around(ProceedingJoinPoint pjp) throws Throwable {
// ExPatternParser.initLogger();
long start = System.currentTimeMillis();
Object[] args = pjp.getArgs();
String remark = this.(pjp);
Object retVal = null;
try {
retVal = pjp.proceed();
} catch (Throwable e) {
// TODO Auto-generated catch block
logger.error("請求失敗" + e.toString(),e);
remark = remark + "。Exception Cause By " + e.toString();
throw e;
}finally{
long end = System.currentTimeMillis();
long cost = end - start;
//列印訪問日誌
// Controller中所有方法的參數,前兩個分別為:Request,Response
if(args != null && args.length > 0){
Object o = args[0];
if(o instanceof HttpServletRequest){
HttpServletRequest request = (HttpServletRequest) args[0];
PrintLog.visit(request, cost,remark);
}
}
}
return retVal;
}
/**
* 獲取註解中對方法的描述信息 用於Controller層註解
* @param joinPoint切點
* @return 方法描述
* @throws Exception
*/
public static String (ProceedingJoinPoint joinPoint)
throws Exception {
String targetName = joinPoint.getTarget().getClass().getName();
String methodName = joinPoint.getSignature().getName();
Object[] arguments = joinPoint.getArgs();
Class targetClass = Class.forName(targetName);
Method[] methods = targetClass.getMethods();
String description = "";
for (Method method : methods) {
if (method.getName().equals(methodName)) {
Class[] clazzs = method.getParameterTypes();
if (clazzs.length == arguments.length) {
ControllerLog controllerLog = method.getAnnotation(ControllerLog.class);
if(controllerLog !=null){
description =
controllerLog.desc();

}
break;
}
}
}
return description;
}

3.然後在每個Controller類上加上註解:
@ControllerLog(desc = "要 列印的日誌內容")

Ⅵ 請教一個簡單的java日誌怎樣寫

關於java日誌,下面以Log4j為例子說明(供參考)。

1、導包(Log4j所依賴的jar包)

2、配置屬性文件。如下:

//刪除數據
@RequestMapping("/delete.do")
publicStringdelete(Studentsstudents){

try{

stuService.delete(students);
}catch(Exceptione){
//直接使用
LoggerUtil.logger.error(e.getMessage());
}
return"redirect:selectAll.do";
}

Ⅶ 用java 代碼實現log4j的日誌輸出功能

寫一個log4j的properties文件,再在web.xml裡面配置一下就ok了,你參考下吧
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d]-%-5p %t (%C.%M:%L) | %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=e:/Logs/PB/root.log
log4j.appender.file.MaxFileSize=5000KB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d]-%-5p %t | %m%n

log4j.logger.java.sql = DEBUG,ibatis
log4j.additivity.java.sql=false
log4j.logger.java.sql.Connection = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
log4j.logger.java.sql.ResultSet = DEBUG

log4j.logger.com.ibatis = DEBUG,ibatis
log4j.additivity.com.ibatis=false
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG
log4j.logger.com.ibatis.sqlmap.engine.cache.CacheModel=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientImpl=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.builder.xml.SqlMapParser=DEBUG
log4j.logger.com.ibatis.common.util.StopWatch=DEBUG

log4j.appender.ibatis=org.apache.log4j.RollingFileAppender
log4j.appender.ibatis.File=e:/Logs/PB/ibatis.log
log4j.appender.ibatis.MaxFileSize=5000KB
log4j.appender.ibatis.MaxBackupIndex=5
log4j.appender.ibatis.Threshold=DEBUG
log4j.appender.ibatis.layout=org.apache.log4j.PatternLayout
log4j.appender.ibatis.layout.ConversionPattern=[%d]%m%n

log4j.rootLogger=DEBUG,stdout,file
log4j.logger.org.springframework=INFO
log4j.logger.org.displaytag=INFO
log4j.logger.freemarker=INFO
log4j.logger.com.opensymphony.xwork2=INFO
log4j.logger.com.pracbiz=DEBUG

Ⅷ JAVA日誌信息在命令行輸出帶顏色的字元串是怎麼實現的

下面的答案是針對控制控制台的顏色:
the default console handler of java.util.logging prints messages
to System.err, and therefor Eclipse renders them red.
你可以通過修改eclipse里的console配色(當然這也影響了其他標准err輸出的顏色),或者就是擴展ConsoleHandler :

Java代碼
class myConsoleHandler extends ConsoleHandler {
public myConsoleHandler() {
super();
this.setOutputStream(System.out);
}
}

更可取的方法是直接使用log4j,可配置的

Ⅸ java開發怎麼做日誌功能 就是記錄用戶每一步的操作具體做什麼了

細說起來,還算是比較麻煩的。大概給你個思路:
要記錄操作日誌,還能查看,那肯定得需要把操作記錄保存起來——直接保存到資料庫即可。
日誌管理模塊的話,因為有上邊的日誌記錄了,做個刪查的功能應該好做。這塊就不細說了。

最主要的地方:怎樣記錄日誌。思路如下:
先分析好需要記錄哪些日誌,這個一般都記錄新增、修改、刪除數據的操作。另外有些特殊的查詢操作也要記錄。

其實是如何記錄。一開始提到了日誌入庫。現在有個問題是什麼時候來做個邏輯。這個時機一般也是訪問者發起操作時就開始做。比如說在action或者servlet或者controller的對應的方法體里開始記錄。當然這需要寫好日誌入庫的邏輯。

其實這個日誌管理也是個比較完整的功能塊,甚至可以是個小系統。也有許多小細節和解決方案。思路有了,如何實現就根據情況而定吧。

Ⅹ JAVA中隊用戶日誌的調用是怎麼實現的

使用攔截器攔截用戶的每一步操作。
首先是 actions 包里的類 (2個 action ,一個攔截器)

1.CheckLoginInterceptor

Java代碼

/*************************************************
@Copyright (C), 2008, lzpeng
@File name: CheckLoginInterceptor.java
@Author: lzpeng
@CreateDate: 2008-6-17
@Description: CheckLoginInterceptor攔截器
@Extends: AbstractInterceptor

@Function List:
1. public String intercept()
*************************************************/

package cn.com.lzpeng.actions;

import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class CheckLoginInterceptor extends AbstractInterceptor {

private static final long serialVersionUID = 1L;
public static final String USER_SESSION_KEY="user";

@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
System.out.println("begin check login interceptor");

// 對LoginAction不做該項攔截
Object action = actionInvocation.getAction();
if (action instanceof LoginAction) {
System.out
.println("exit check login, because this is login action.");
return actionInvocation.invoke();
}
// 驗證 session
Map session = actionInvocation.getInvocationContext().getSession();
String username = (String) session.get(USER_SESSION_KEY);

if (username != null) {
// 存在的情況下進行後續操作。
System.out.println(username+" already login!");
return actionInvocation.invoke();
} else {
// 否則終止後續操作,返回LOGIN
System.out.println("no login, forward login page!");

return Action.LOGIN;

}

}

}
/*************************************************
@Copyright (C), 2008, lzpeng
@File name: CheckLoginInterceptor.java
@Author: lzpeng
@CreateDate: 2008-6-17
@Description: CheckLoginInterceptor攔截器
@Extends: AbstractInterceptor

@Function List:
1. public String intercept()
*************************************************/

package cn.com.lzpeng.actions;

import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class CheckLoginInterceptor extends AbstractInterceptor {

private static final long serialVersionUID = 1L;
public static final String USER_SESSION_KEY="user";

@Override
public String intercept(ActionInvocation actionInvocation) throws Exception {
System.out.println("begin check login interceptor");

// 對LoginAction不做該項攔截
Object action = actionInvocation.getAction();
if (action instanceof LoginAction) {
System.out
.println("exit check login, because this is login action.");
return actionInvocation.invoke();
}
// 驗證 session
Map session = actionInvocation.getInvocationContext().getSession();
String username = (String) session.get(USER_SESSION_KEY);

if (username != null) {
// 存在的情況下進行後續操作。
System.out.println(username+" already login!");
return actionInvocation.invoke();
} else {
// 否則終止後續操作,返回LOGIN
System.out.println("no login, forward login page!");

return Action.LOGIN;

}

}

}
struts.xml
Java代碼
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<!-- 載入默認的 struts2 配置文件 -->
<include file="struts-default.xml" />
<!-- 繼承默認的 struts2 配置文件 -->
<package name="default" extends="struts-default">
<!-- 定義一個名為 checkLogin 的攔截器 -->
<interceptors>
<!-- 定義許可權檢查攔截器 -->
<interceptor name="checkLogin"
class="cn.com.lzpeng.actions.CheckLoginInterceptor" />
<!-- 定義一個包含許可權檢查的攔截器棧 -->
<interceptor-stack name="myDefaultStack">
<!-- 定義攔截器棧包含checkLogin攔截器 -->
<interceptor-ref name="checkLogin"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 設置全局 全局默認的攔截器棧-->
<default-interceptor-ref name="myDefaultStack"></default-interceptor-ref>

<!-- 定義全局Result -->
<global-results>
<!-- 當返回login視圖名時,轉入/login.jsp頁面 -->
<result name="login">/login.jsp</result>
</global-results>

<!--
action 標簽里 name屬性代表我們要處理的.action的前面部分
action 標簽里 class屬性代表我們需要哪個類來處理
result 標簽的 name屬性代表action類的執行方法的返回值,
action類的默認執行方法是public String execute()
-->
<action name="login"
class="cn.com.lzpeng.actions.LoginAction">
<result name="success">success.jsp</result>
<result name="error">error.jsp</result>
<result name="login">login.jsp</result>
<!--攔截器一般配置在 result 元素之後 -->
<interceptor-ref name="myDefaultStack" />
</action>

<action name="testInterceptor"
class="cn.com.lzpeng.actions.TestInterceptorAction">
<result name="success">content.jsp</result>
<result name="login">login.jsp</result>
</action>

</package>
</struts>

與java日誌實現相關的資料

熱點內容
aes對稱加密反編譯 瀏覽:548
java編譯成exe 瀏覽:188
gps處理演算法 瀏覽:594
什麼app可以和對象存錢 瀏覽:144
java字元串表達式計算 瀏覽:328
javacmd環境變數 瀏覽:49
電視上面找不到全民歌app怎麼辦 瀏覽:154
單片機中psw0 瀏覽:992
優酷視頻加密么 瀏覽:761
本地連接dos命令 瀏覽:204
雲伺服器怎麼上傳金幣房卡游戲 瀏覽:69
Python快遞管理可視化 瀏覽:417
java正則驗證數字 瀏覽:828
猴子網游安卓掃碼怎麼登錄 瀏覽:355
7天工作總結簡短程序員 瀏覽:60
手機號交易網站源碼 瀏覽:687
計算機演算法怎麼學 瀏覽:401
m2手環用什麼app才能用 瀏覽:227
應用伺服器打不開怎麼辦 瀏覽:538
釘釘安卓手機如何設置 瀏覽:559