如何配置log4j文件appender,每15分钟滚动一次日志文件

我知道我可以使用DailyRollingFileAppender每月,每天,每半天,每小时或每分钟滚动日志文件。 但是如何配置log4j每15分钟滚动一次日志文件。 如果配置无法做到这一点,请建议/指导我如何扩展log4j的文件appender来实现这一点。 感谢致敬。

如何在ECLIPSE中调试.class文件?

我正在使用Eclipse 3.5,并将src.zip附加到Eclipse中的全局设置。 Windows – >首选项 – > Java – >已安装的JRE – > rt.jar – 源附件 – ….. / jdk / src.zip 我成功地介入了java核心库.class文件并查看了源代码。 我构建了一个使用LinkedList的类,我在LinkedList类中设置了一个断点。 当我调试源代码中的断点(我的项目)工作正常但是当我需要进入java核心库.classes时,我在Eclipse中遇到以下错误 由于缺少行号属性,无法在java.util.LinkedList中安装断点。 修改编译器选项以生成行号属性。 我检查了首选项中的编译器设置,发现所有选项都选中了。 如果有人可以帮我解决这个问题,那就太好了。 提前致谢。

使用javamail API发送带附件的电子邮件

我正在尝试使用Java发送带有附件的电子邮件。 当我发送没有附件的电子邮件时,我收到了电子邮件,但是当我添加附件时,我没有收到任何内容,我也没有收到任何错误消息。 这是我正在使用的代码: public void send () throws AddressException, MessagingException{ //system properties Properties props = new Properties(); props.put(“mail.smtp.localhost”, “localhost”); props.put(“mail.smtp.host”,Configurations.getInstance().email_serverIp); /* * create some properties and get the default Session */ session = Session.getDefaultInstance(props, null); //session Session session = Session.getInstance(props, null); Message message = new MimeMessage(session); message.setFrom(new InternetAddress(“zouhaier.mhamdi@gmail.com”)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(“zouhaier.mhamdi@gmail.com”)); message.setSubject(“Testing Subject”); message.setText(“PFA”); MimeBodyPart messageBodyPart […]

使用JAXB编组LocalDate

我正在构建一系列链接类,其实例我希望能够编组为XML,因此我可以将它们保存到文件中,稍后再读取它们。 目前我使用以下代码作为测试用例: import javax.xml.bind.annotation.*; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import java.time.LocalDate; public class LocalDateExample { @XmlRootElement private static class WrapperTest { public LocalDate startDate; } public static void main(String[] args) throws JAXBException { WrapperTest wt = new WrapperTest(); LocalDate ld = LocalDate.of(2016, 3, 1); wt.startDate = ld; marshall(wt); } public static void marshall(Object jaxbObject) […]

Java将对象转换为未实现的接口

我在学习书中发现了以下问题,有点困惑: 给定以下代码,如果用于替换/* INSERT CODE HERE */ ,哪个选项将启用Roamable类型的引用变量来引用Phone类的对象? (选择1个选项。) interface Roamable{} class Phone {} class Tablet extends Phone implements Roamable { //INSERT CODE HERE } 选项包括: Roamable var = new Phone(); Roamable var = (Roamable)Phone(); Roamable var = (Roamable)new Phone(); 由于接口Roamable和类Phone不相关,因此Roamable类型的引用变量不能引用Phone类的对象。 我认为正确的选项是4,但它说它是3。 但是, Phone并没有实现Roamable接口,所以你不能施展,可以吗?

Log4j挂起我的应用程序我做错了什么?

首先介绍一下应用程序的背景。 我有一个应用程序通过线程池并行处理许多独立的任务。 线程池现在挂起了。 以下是我的线程转储的片段,pool-2中的所有线程都被“pool-2-thread-78”阻塞。 它似乎被锁定试图写入控制台,我觉得非常奇怪。 任何人都可以为我阐明情况吗? 编辑 :平台详细信息java版“1.6.0_07”Java(TM)SE运行时环境(版本1.6.0_07-b06)Java HotSpot(TM)客户端VM(版本10.0-b23,混合模式,共享) Ubuntu Linux服务器双核四核机。 它似乎在写入printstream时锁定,我考虑过只删除控制台appender然而我宁愿知道它为什么阻塞并根据这些知识删除它。 在过去删除,看看它是否有效已经回来咬我:) 我的log4j中的相关部分 log4j.rootLogger = DEBUG,STDOUT log4j.logger.com.blah = INFO,LOG log4j.appender.STDOUT = org.apache.log4j.ConsoleAppender log4j.appender.LOG = org.apache.log4j.FileAppender 线程转储提取 “pool-2-thread-79”Id = 149 BLOCKED org.apache.log4j.spi.RootLogger@6c3ba437由“pool-2-thread-78”Id = 148所拥有org.apache.log4j.Category.callAppenders( Category.java:201)org.apache.log4j.Category.forcedLog(Category.java:388)atg.apache.log4j.Category.error(Category.java:302)at com.blah.MessageProcessTask.run(MessageProcessTask .java:103)at java.util.concurrent.Executors $ runnableAdapter.call(Executors.java:441)at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask / java:268)at java.util.concurrent。 FutureTask.run(FutureTask / java:54)java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:885)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:907)at java .lang.Thread.run(Thread.java:619) […]

打开一个新的JFrame

我有一个主JFrame,其中包含各种面板,用于不同的function,人们可以计算其中的内容。 当用户点击第一个计算按钮并作为输出窗口时,我想打开一个新的JFrame(如果您熟悉它们,则可以使用Simlar到SPSS输出窗口)。 New JFrame将完全独立,并将拥有自己的菜单栏…简单的JDialog不是这里的方式。

所有JVM /系统中的Java,Object.hashCode()结果常量?

Object.hashCode()的输出是否必须在同一个对象的所有JVM实现上相同? 例如,如果”test”.hashCode()在1.4上返回1 ,它是否可能在1.6上返回2 。 或者,如果操作系统不同,或者实例之间存在不同的处理器架构,该怎么办?

文件之间的区别#删除(路径)和文件#delete()

我正在使用Windows 7与java 7更新6,并发现这个奇怪的(至少对我来说)行为 – 我有两个文件E:\delete1.txt和E:\delete2.txt都是只读文件,当我尝试删除文件时,如果它被删除没有任何问题 – File file = new File(“E:\\delete1.txt”); assertTrue(file.delete()); 但是当我使用nio API删除文件时如下 – Path path = Paths.get(“E:\\delete2.txt”); Files.delete(path); 它抛出java.nio.file.AccessDeniedException 。 为什么使用旧的和新的nio API进行相同操作的不同行为?

特定日期后第一个下周一获得?

我知道这里有同样的问题,但我已经尝试了提供的答案,它返回了一个我不明白的输出。 我对答案感到困惑,我不认为输出是正确的。 我需要帮助,谢谢:) GregorianCalendar date1 = new GregorianCalendar( 2014, 05, 12 ); //05 is june as month start from 0 -11 while( date1.get( Calendar.DAY_OF_WEEK ) != Calendar.MONDAY ) date1.add( Calendar.DATE, 1 ); System.out.println(date1); 这是输出: java.util.GregorianCalendar[time=1405267200000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=”Asia/Singapore”,offset=28800000,dstSavings=0,useDaylight=false,transitions=9,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=6,WEEK_OF_YEAR=29,WEEK_OF_MONTH=3,DAY_OF_MONTH=14,DAY_OF_YEAR=195,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=28800000,DST_OFFSET=0] 在输出的哪个位置我应该提取以检索星期一的日期?