forked from iBase4J/iBase4J
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
shenhuajie
committed
Jun 5, 2017
1 parent
8d1ff97
commit 364d234
Showing
197 changed files
with
3,488 additions
and
2,572 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
104 changes: 4 additions & 100 deletions
104
iBase4J-Biz-Web/src/main/java/org/ibase4j/service/sys/SysEventService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,112 +1,16 @@ | ||
package org.ibase4j.service.sys; | ||
|
||
import java.io.IOException; | ||
import java.util.concurrent.ExecutorService; | ||
import java.util.concurrent.Executors; | ||
|
||
import javax.servlet.http.HttpServletRequest; | ||
import javax.servlet.http.HttpServletResponse; | ||
|
||
import org.apache.commons.lang3.StringUtils; | ||
import org.ibase4j.core.Constants; | ||
import org.ibase4j.core.base.BaseService; | ||
import org.ibase4j.core.support.ISysEventService; | ||
import org.ibase4j.core.support.dubbo.spring.annotation.DubboReference; | ||
import org.ibase4j.core.util.DateUtil; | ||
import org.ibase4j.core.util.ExceptionUtil; | ||
import org.ibase4j.core.util.WebUtil; | ||
import org.ibase4j.model.sys.SysEvent; | ||
import org.ibase4j.provider.sys.ISysEventProvider; | ||
import org.ibase4j.model.SysEvent; | ||
import org.ibase4j.provider.ISysEventProvider; | ||
import org.springframework.stereotype.Service; | ||
|
||
import com.alibaba.fastjson.JSON; | ||
|
||
import cz.mallat.uasparser.OnlineUpdater; | ||
import cz.mallat.uasparser.UASparser; | ||
import cz.mallat.uasparser.UserAgentInfo; | ||
|
||
@Service | ||
public class SysEventService extends BaseService<ISysEventProvider, SysEvent> | ||
implements org.ibase4j.core.support.SysEventService { | ||
public class SysEventService extends BaseService<ISysEventProvider, SysEvent> implements ISysEventService { | ||
@DubboReference | ||
public void setProvider(ISysEventProvider provider) { | ||
this.provider = provider; | ||
} | ||
static UASparser uasParser = null; | ||
|
||
// 初始化uasParser对象 | ||
static { | ||
try { | ||
uasParser = new UASparser(OnlineUpdater.getVendoredInputStream()); | ||
} catch (IOException e) { | ||
logger.error("", e); | ||
} | ||
} | ||
|
||
private ExecutorService executorService = Executors.newCachedThreadPool(); | ||
|
||
public void saveEvent(final HttpServletRequest request, final HttpServletResponse response, final Exception ex, | ||
final Long startTime, final Long endTime) { | ||
String userAgent = null; | ||
try { | ||
UserAgentInfo userAgentInfo = uasParser.parse(request.getHeader("user-agent")); | ||
userAgent = userAgentInfo.getOsName() + " " + userAgentInfo.getType() + " " + userAgentInfo.getUaName(); | ||
} catch (IOException e) { | ||
logger.error("", e); | ||
} | ||
String path = request.getServletPath(); | ||
if (!path.contains("/read/") && !path.contains("/unauthorized") && !path.contains("/forbidden")) { | ||
final SysEvent record = new SysEvent(); | ||
Long uid = WebUtil.getCurrentUser(); | ||
record.setMethod(request.getMethod()); | ||
record.setRequestUri(request.getServletPath()); | ||
record.setClientHost(WebUtil.getHost(request)); | ||
record.setUserAgent(userAgent); | ||
if (path.contains("/upload/")) { | ||
record.setParameters(""); | ||
} else { | ||
record.setParameters(JSON.toJSONString(request.getParameterMap())); | ||
} | ||
record.setStatus(response.getStatus()); | ||
record.setCreateBy(uid); | ||
record.setUpdateBy(uid); | ||
final String msg = (String) request.getAttribute("msg"); | ||
|
||
executorService.submit(new Runnable() { | ||
public void run() { | ||
try { // 保存操作 | ||
record.setTitle((String) request.getAttribute(Constants.OPERATION_NAME)); | ||
if (StringUtils.isNotBlank(msg)) { | ||
record.setRemark(msg); | ||
} else { | ||
record.setRemark(ExceptionUtil.getStackTraceAsString(ex)); | ||
} | ||
|
||
update(record); | ||
// 内存信息 | ||
if (logger.isDebugEnabled()) { | ||
String message = "开始时间: {}; 结束时间: {}; 耗时: {}s; URI: {}; "; | ||
// 最大内存: {}M; 已分配内存: {}M; 已分配内存中的剩余空间: {}M; 最大可用内存: | ||
// {}M. | ||
// long total = Runtime.getRuntime().totalMemory() / | ||
// 1024 / 1024; | ||
// long max = Runtime.getRuntime().maxMemory() / | ||
// 1024 / 1024; | ||
// long free = Runtime.getRuntime().freeMemory() / | ||
// 1024 / 1024; | ||
// , max, total, free, max - total + free | ||
logger.debug(message, DateUtil.format(startTime, "HH:mm:ss.SSS"), | ||
DateUtil.format(endTime, "HH:mm:ss.SSS"), (endTime - startTime) / 1000.00, | ||
record.getRequestUri()); | ||
} | ||
} catch (Exception e) { | ||
logger.error("Save event log cause error :", e); | ||
} | ||
} | ||
}); | ||
} else if (path.contains("/unauthorized")) { | ||
logger.warn("用户[{}]没有登录", WebUtil.getHost(request) + "@" + userAgent); | ||
} else if (path.contains("/forbidden")) { | ||
logger.warn("用户[{}]没有权限", WebUtil.getCurrentUser() + "@" + WebUtil.getHost(request) + "@" + userAgent); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 15 additions & 9 deletions
24
iBase4J-Common/src/main/java/org/ibase4j/core/exception/FtpException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,27 @@ | ||
package org.ibase4j.core.exception; | ||
|
||
import org.ibase4j.core.support.HttpCode; | ||
|
||
/** | ||
* FTP异常 | ||
* | ||
* @author ShenHuaJie | ||
* @version 2016年5月20日 下午3:19:19 | ||
*/ | ||
@SuppressWarnings("serial") | ||
public class FtpException extends RuntimeException { | ||
public FtpException() { | ||
} | ||
public class FtpException extends BaseException { | ||
public FtpException() { | ||
} | ||
|
||
public FtpException(String message) { | ||
super(message); | ||
} | ||
|
||
public FtpException(String message) { | ||
super(message); | ||
} | ||
public FtpException(String message, Throwable throwable) { | ||
super(message, throwable); | ||
} | ||
|
||
public FtpException(String message, Throwable throwable) { | ||
super(message, throwable); | ||
} | ||
protected HttpCode getHttpCode() { | ||
return HttpCode.INTERNAL_SERVER_ERROR; | ||
} | ||
} |
26 changes: 26 additions & 0 deletions
26
iBase4J-Common/src/main/java/org/ibase4j/core/exception/InstanceException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
/** | ||
* | ||
*/ | ||
package org.ibase4j.core.exception; | ||
|
||
import org.ibase4j.core.support.HttpCode; | ||
|
||
/** | ||
* | ||
* @author ShenHuaJie | ||
* @version 2017年3月24日 下午9:30:10 | ||
*/ | ||
@SuppressWarnings("serial") | ||
public class InstanceException extends BaseException { | ||
public InstanceException() { | ||
super(); | ||
} | ||
|
||
public InstanceException(Throwable t) { | ||
super(t); | ||
} | ||
|
||
protected HttpCode getHttpCode() { | ||
return HttpCode.INTERNAL_SERVER_ERROR; | ||
} | ||
} |
Oops, something went wrong.