草庐IT

java - log4j 属性 DailyRollingFileAppender 不起作用

我想要每日日志,日志文件附加了yyyy-dd-mm格式的日期。当我使用DailyRollingFileAppender时,不会创建新的日志文件。日志被写入同一个日志文件。此外,不考虑提供的日期模式。创建的日志文件是LoggerFile.log。并且每个内容(即使是第二天)都写入此文件。我正在使用log4j-1.2.17jar。我正在使用Java开发Netbeans7.3.1。有没有人在使用这个JAR遇到这样的问题。请帮忙!这是我使用的属性文件的内容:#Rootloggeroptionlog4j.rootLogger=ERROR,FILE,stdout#Definethefileappe

java - log4j.properties 被忽略

我在glassfishv3.0.1上使用IntelliJIDEA9.0.3通过maven部署了一个JavaEE6Wicket应用程序。我将slf4j-log4j12-1.5.6与slf4j-api-1.5.8和log4j-1.2.16一起用于日志记录。当我通过netbeans或eclipse部署时,它以前工作正常,但是当我使用IntelliJIDEA部署时,我的log4j.properties文件被忽略,glassfish的日志记录处理我的日志消息。我不认为IDEA与它有任何关系,一定有其他东西改变了我只是想不通是什么。我已验证我的log4j.properties文件在我的WEB-IN

java - log4j 和线程上下文类加载器

我是Java的新手,刚刚开始了解类加载器的概念。现在我在使用log4j线程上下文类加载器时遇到了一些问题。我收到以下错误:“org.apache.log4j.ConsoleAppender”对象不可分配给“org.apache.log4j.Appender”变量。“org.apache.log4j.Appender”类由[java.net.URLClassLoader@105691e]加载,而“org.apache.log4j.ConsoleAppender”类型的对象由[sun.misc.Launcher$AppClassLoader@16930e2]加载.无法实例化名为“CONSO

java - 什么-XX :-PrintGC and XX:-PrintGCDetails flags do?

我找到了JVM标志here.是否有更详细的解释说明它们到底做了什么? 最佳答案 在Sun上,使用-Xloggc:gc.log来记录到一个文件,-verbose:gc也是一个常用的开关。此外,确保-XX:+PrintGCDetails和-XX:+PrintGCTimeStamps(注意加号+)。时间戳开关是多余的,但最好包含在内。 关于java-什么-XX:-PrintGCandXX:-PrintGCDetailsflagsdo?,我们在StackOverflow上找到一个类似的问题:

java - Spring 数据 JPA( hibernate ): How do I retrieve a concrete entity using only a field in its abstract superclass?

考虑以下层次结构,其中实体WidgetA和WidgetB扩展抽象Widget父类(superclass):@Entity@Inheritance(strategy=InheritanceType.JOINED)publicabstractclassWidgetimplementsSerializable{@Column(name="serialNumber",length=64,nullable=false,unique=true)privateStringserialNumber;...和@EntitypublicclassWidgetAextendsWidgetimplements

java - "Warning: Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)"

类似的问题是askedhere,here和here但上下文与此完全不同,而且codethatgavefromthiserror由Android和AndroidStudio的制造商编写。这是代码:publicclassMySingleton{privatestaticMySingletonmInstance;privateRequestQueuemRequestQueue;privateImageLoadermImageLoader;privatestaticContextmCtx;privateMySingleton(Contextcontext){mCtx=context;mRequ

java - Log4j,禁用依赖于环境的附加程序

我想要一个log4j.xml配置,并且能够在开发我的应用程序时登录到控制台。一旦部署到环境中,我只想登录到文件附加程序而不是控制台。我怎样才能做到这一点?这是我当前的配置: 最佳答案 解决方案之一可能是为开发和生产环境分离log4j配置文件,例如:log4j-development.xml-用于开发环境log4j-production.xml-用于生产环境然后您的应用程序启动命令可以有指定log4j配置文件的参数,例如java-Dlog4jconfig=log4j-development.xml-jarApplication.jar

java - 使用 log4j 以编程方式创建不同的日志文件

我有一个自动化集成测试工具,想简化日志记录(使用log4j实现)我有许多高级测试,每个测试都有一个ID,并且每个测试都需要一个单独的日志文件。由于测试是随机创建的,因此直到运行时才知道ID。因此,我想确保每个高级测试中的日志记录都写到该测试的日志文件中。我不想创建自定义日志级别,我也不想将日志记录发送到所有附加程序。有人知道这样做的方法吗? 最佳答案 您可以轻松地以编程方式调用log4j的API,例如FileAppenderappender=newFileAppender();//configuretheappenderhere,w

java - 如何在 SLF4j 或 Log4J 中动态更改日志级别

最近遇到一个ApplicationLoglevel动态变化的情况。应用程序管理员可以从前端将其设置为INFO/DEBUG/WARN。根据选择的日志级别,必须更改应用程序日志记录。我确信记录器支持这种情况。我怎样才能做到这一点? 最佳答案 无法在slf4j中动态更改日志级别,但slf4j的一些后端支持它,包括log4j。这个解决方案对我有用:org.apache.log4j.Loggerlogger4j=org.apache.log4j.Logger.getRootLogger();logger4j.setLevel(org.apac

java - Apache Derby : how can I do "insert if not exists"?

我给ApacheDerby,又名JavaDB旋转。插入可能已经存在的记录时,我似乎无法解决重复键问题。是否有等同于“insertifnotexists”或“merge”的Derby?同样,有没有办法做类似“droptablefooifexists”这样的事情? 最佳答案 我从未使用过apachederby,但是一个完全独立于数据库的通用解决方案如下:要将值'a'和'b'插入表foo(列名为A、B),但仅在值不存在的地方,尝试类似的方法INSERTINTOfoo(SELECT'a'asA,'b'asBFROMfooWHEREA='a'