Tag: logging

如何使用相同的log4j记录器为不同的包创建不同的日志文件?

我正在尝试为不同的包设置单独的日志文件。 我正在使用Wrapper类作为log4j记录器。 我的应用程序中的每个类都调用相同的包装类。 我的包装类: public class MyLogger { private static Logger logger = Logger.getLogger(MyLogger.class.getName()); …. …. } 它被称为这样: MyLogger.write(, , ); 有没有办法配置log4j,以便它将不同包的日志记录输出到不同的文件? 谢谢! 编辑: 这是我的log4j.properties文件: log4j.rootLogger=DEBUG, infoout, aar log4j.logger.com.businessservice.datapopulation=DEBUG, aar log4j.additivity.com.businessservice.datapopulation=false log4j.appender.infoout = org.apache.log4j.RollingFileAppender log4j.appender.infoout.file=/app/aar_frontend.log log4j.appender.infoout.append=true log4j.appender.infoout.Threshold=DEBUG log4j.appender.infoout.MaxFileSize=2MB log4j.appender.infoout.MaxBackupIndex=10 log4j.appender.infoout.layout = org.apache.log4j.PatternLayout log4j.appender.infoout.layout.ConversionPattern = %m%n log4j.appender.aar = org.apache.log4j.RollingFileAppender log4j.appender.aar.file=/app/aar/aar_backend.log log4j.appender.aar.append=true log4j.appender.aar.Threshold=DEBUG log4j.appender.aar.MaxFileSize=2MB log4j.appender.aar.MaxBackupIndex=10 log4j.appender.aar.layout = […]

以编程方式设置Logback Appender路径

我正在尝试以编程方式设置Logback appender路径。 (具有FixedWindowRollingPolicy的RollingFileAppender准确) 我这样做是因为我想让我的用户在首选项对话框中设置日志路径(Eclipse RCP) 我尝试过类似的东西,但是我没有改变配置文件中定义的日志路径: Logger logback_logger = (ch.qos.logback.classic.Logger)LoggerFactory .getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME); RollingFileAppender rfappender = (RollingFileAppender)logback_logger.getAppender(“FILE”); rfappender.setFile(newFile); FixedWindowRollingPolicy rollingPolicy = (FixedWindowRollingPolicy)rfappender.getRollingPolicy(); rollingPolicy.setFileNamePattern(newPattern);

启用Hibernate日志记录

我正在尝试创建一个hibernate语句的日志。 我使用JPA执行我的sql语句,其中Hibernate 2.0是持久性提供程序(我的应用程序服务器是JBoss AS 6.0)。 我使用EJB 3.0提供的EntityManager接口调用我的CRUD方法。 我读了很多关于启用hinernate日志的post,但实际上我看不到任何日志:-(我创建了一个log4j.properties文件,我将它放在我的Netbeans项目的根文件夹中。我还将log4j库放在了类的路径中我的log4j.properties是以下内容: ### direct log messages to stdout ### 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{ABSOLUTE} %5p %c{1}:%L – %m%n log4j.rootLogger=debug, stdout log4j.logger.org.hibernate=info ### log just the SQL log4j.logger.org.hibernate.SQL=debug ### log JDBC bind parameters ### log4j.logger.org.hibernate.type=info ### log schema export/update ### log4j.logger.org.hibernate.tool.hbm2ddl=info ### log HQL parse trees #log4j.logger.org.hibernate.hql=debug ### log cache activity […]

使用log4j在Java中记录运行时exception

我目前正在使用Tomcat,Spring和JAVA构建应用程序。 我使用Log4J作为我的日志库。 我目前正在将所有内容记录到文本文件中。 我遇到的一个问题是RuntimeExceptions没有记录到任何文件。 我想知道是否有办法记录可能抛出到我的应用程序日志文件的所有RuntimeExceptions 。 如果不是可以让它登录到另一个日志文件? 有没有标准的方法来做到这一点? 如果是这样,在Tomcat中运行应用程序时有一种标准的方法吗? 预先感谢您的帮助!

在JBoss 7.1.1下使用应用程序的Log4J配置

我在使用我的XML log4j配置文件中定义的appender进行日志记录时遇到问题。 我在我的EAR的META-INF文件夹上创建了jboss-deployment-structure.xml ,没有成功。 jboss-deployment-structure.xml结构是: false 我甚至尝试编辑我的standalone.conf.bat文件,添加以下行: set “JAVA_OPTS=%JAVA_OPTS% -Dorg.jboss.as.logging.per-deployment=false” 我的应用程序部署如下: -> MyAppEAR.ear -> META-INF -> MANIFEST.MF -> MyAoo.war -> META-INF -> MANIFEST.MF -> jboss-deployment-structure.xml -> WEB-INF -> web.xml -> lib -> log4j-1.2.17.jar -> — -> classes -> log4j.xml -> … 我注意到以下错误: 忽略子部署中的jboss-deployment-structure.xml。 jboss-deployment-structure.xml仅针对顶级部署进行解析。 我甚至试过从JBOSS 7.1.0迁移到7.1.1 请帮忙! 谢谢 感谢詹姆斯的收获。 我做了你说的,并将jboss-deployment-structure.xml文件移动到MyAppEAR.ear / META-INF 。 我注意到这种方式的exception: jboss-deployment-structure.xml […]

如何在Selenium WebDriver中获取本机记录器

是否有可能以某种方式获取Selenium WebDriver使用的记录器? 我想捕获所有发出的命令的记录(例如:打开,等待,点击等)。 特别是我正在寻找一个java解决方案,因为我将测试导出到junit。 我在他们的网站上找到了这个代码,但它没有标准显示 DesiredCapabilities caps = DesiredCapabilities.firefox(); LoggingPreferences logs = new LoggingPreferences(); logs.enable(LogType.DRIVER, Level.FINEST); caps.setCapability(CapabilityType.LOGGING_PREFS, logs); driver = new FirefoxDriver(caps);

记录未显示

我在我的应用程序中使用JUL。 通常,Netbeans会打开一个输出选项卡,其中显示“Tomcat”并显示我生成的日志。 它工作正常。 但突然之间,我意识到我的日志根本没有显示,只有System.out被打印出来。 甚至不是最高的LOG.log(Level.SEVERE, “…. Level.SEVERE LOG.log(Level.SEVERE, “…. } catch(Exception e) { System.out.println(“This gets printed in Netbeans tab”); LOG.log(Level.SEVERE, “This doesnt”); } 我怀疑它可能是我包含的库,这会弄乱我的日志。 这有可能吗? librray可以改变我的日志显示方式吗? 我怎么能调查这个,因为我有点迷失?

Log4j格式化:是否可以截断堆栈跟踪?

我想在我的程序中仅记录Exceptions的前几行。 我知道,我可以做这样的事情只打印堆栈跟踪的前5行: Throwable e = …; StackTraceElement[] stack = e.getStackTrace(); int maxLines = (stack.length > 4) ? 5 : stack.length; for (int n = 0; n < maxLines; n++) { System.err.println(stack[n].toString()); } 但我宁愿使用log4j(或更精确的log4j上的slf4j)进行日志记录。 有没有办法告诉log4j它应该只打印堆栈跟踪的前5行?

Dropwizard不会将自定义记录器记录到文件中

我有一个dropwizard应用程序,我将logger appender配置为文件,如下所示: logging: level: INFO loggers: “mylogger”: INFO “com.path.to.class”: INFO appenders: – type: file currentLogFilename: .logs/mylogs.log archivedLogFilenamePattern: .logs/archive.%d.log.gz archivedFileCount: 14 并且,在我的应用中创建了记录器: import org.slf4j.Logger; import org.slf4j.LoggerFactory; private final Logger OpLogger = LoggerFactory.getLogger(“mylogger”); (and) private final Logger ClassLogger = LoggerFactory.getLogger(pathToClass.class); 在main()中进行一些测试记录: OpLogger.info(“test 1”); ClassLogger.info(“test 2); 应用程序启动并运行没有问题; 但我没有得到任何日志(除了Jetty访问日志,当然,正确打印到mylogs.log),无论是在stdout还是在mylogs.log文件中。 相反,如果我删除configuration.yml中的记录器配置,我会将所有日志打印到stdout。 也许这是dropwizard的问题,或者我必须在configuration.yml中添加一些东西? 我正在使用Dropwizard 0.8.0

配置MongoDB Java驱动程序的日志记录

我可以配置MongoDB Java驱动程序以输出有用(用于调试)消息,理想情况下使用标准日志框架之一吗? 我主要感兴趣的是看到每个查询结果,收到了多少数据以及花了多长时间,以及任何错误代码。