ssh里,如何使用代理记录日志
能给一段简单代码吗?
能给一段简单代码吗?
解决方案 »
- jQuery+json+struts2的ajax返回的问题
- 是不是.replace("\n","<br>")出错了?
- JAVA有没有System.Web.UI.WebControls类似的类
- 请大家看一下为什么这段代码会出错,我已经启动了weblogic服务器呀 菜鸟问题
- Could not bind factory to JNDI?
- 有高手吗?如何用java客户端实现一个文件对web服务器的断点续传?
- weblogic问题,高手来帮忙,帮忙顶也有感谢!!
- hibernate中的clob字段的用法?
- 你用jdeveloper嘛?
- 一个小问题,晚上结贴:后缀为java的程序用什么调试?
- web项目 超级管理员密码应该放在哪里
- xmlbeans 如何删除xml节点?
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=ERROR, stdout, logfile# log4j.logger.com.tianbo=ERROR
# log4j.logger.org.apache.commons=ERROR
# log4j.logger.org.apache.struts=ERROR
# log4j.logger.org.springframework=ERROR
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p [%c] - <%m>%n# log4j.logger.org.hibernate=ERROR
# log4j.appender.org.hibernate=org.apache.log4j.DailyRollingFileAppender
# log4j.appender.org.hibernate.File =D:/phsama_ssh/webapp/phsama_sql.log //改下
# log4j.appender.org.hibernate.layout=org.apache.log4j.PatternLayout
# log4j.appender.org.hibernate.layout.ConversionPattern=%d [%t:%r] - [%p] %m%n log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=D:/sytbt/webapp/log/sytbt.log //改下
log4j.appender.logfile.MaxFileSize=512KB
log4j.appender.logfile.MaxBackupIndex=3
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[SYTBT] %d %p [%c] - %m%n你看能用不
package com.euse.proxy;import java.lang.reflect.*;public class TestHandle implements InvocationHandler {
private TestInterface test;
public TestInterface bind(TestInterface test) {
this.test = test;
TestInterface proxyTest =
(TestInterface)Proxy.newProxyInstance(
test.getClass().getClassLoader(),
test.getClass().getInterfaces(),
this);
return proxyTest;
}
public Object invoke(Object proxy,Method method,Object[] args)
throws Throwable {
if (method.getName().equals("print")) {
System.out.println("TestHandle.print()");
return null;
}else {
return method.invoke(test, args);
}
}
}
对于异常的记录,需要声明一下aop的异常通知,可以对所有异常发出通知,或者对特定异常的通知,spring的参考文档如下:6.2.4.3. 异常通知(After throwing advice)
抛出异常通知在一个方法抛出异常后执行。使用@AfterThrowing注解来声明:import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.AfterThrowing;@Aspect
public class AfterThrowingExample { @AfterThrowing("com.xyz.myapp.SystemArchitecture.dataAccessOperation()")
public void doRecoveryActions() {
// ...
}}
你通常会想要限制通知只在某种特殊的异常被抛出的时候匹配,你还希望可以在通知体内得到被抛出的异常。 使用throwing属性不仅可以限制匹配的异常类型(如果你不想限制,请使用 Throwable作为异常类型),还可以将抛出的异常绑定到通知的一个参数上。 import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.AfterThrowing;@Aspect
public class AfterThrowingExample { @AfterThrowing(
pointcut="com.xyz.myapp.SystemArchitecture.dataAccessOperation()",
throwing="ex")
public void doRecoveryActions(DataAccessException ex) {
// ...
}}
在throwing属性中使用的名字必须与通知方法内的一个参数对应。 当一个方法因抛出一个异常而中止后,这个异常将会作为那个对应的参数送至通知方法。 throwing 子句也限制了只能匹配到抛出指定异常类型的方法 (上面的示例为DataAccessException)。