{"id":16696,"date":"2024-03-15T13:28:13","date_gmt":"2024-03-15T13:28:13","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/"},"modified":"2025-08-07T05:07:23","modified_gmt":"2025-08-07T05:07:23","slug":"how-to-implement-scheduled-deletion-of-old-logs-in-log4j","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/","title":{"rendered":"How to implement scheduled deletion of old logs in log4&#8230;"},"content":{"rendered":"<p>To achieve the automatic deletion of old log files in log4j, you can use log4j&#8217;s RollingFileAppender and DailyRollingFileAppender together with a scheduling framework like Quartz.<\/p>\n<ol>\n<li>Set up a RollingFileAppender or DailyRollingFileAppender:<br \/>\nIn the log4j.properties file, configure a RollingFileAppender or DailyRollingFileAppender and define the file name and file rolling strategy. For example:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>log4j.appender.myAppender=org.apache.log4j.RollingFileAppender\r\nlog4j.appender.myAppender.File=\/path\/to\/log\/file.log\r\nlog4j.appender.myAppender.MaxFileSize=5MB\r\nlog4j.appender.myAppender.MaxBackupIndex=10\r\nlog4j.appender.myAppender.layout=org.apache.log4j.PatternLayout\r\nlog4j.appender.myAppender.layout.ConversionPattern=%d [%t] %-5p %c{1} - %m%n\r\n<\/code><\/pre>\n<p>MaxFileSize indicates the maximum size of an individual log file, while MaxBackupIndex represents the number of backup files to retain.<\/p>\n<ol>\n<li>Set up a scheduled task:<br \/>\nUtilize a scheduling framework (such as Quartz) to create a task that automatically deletes old log files. For example:<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> org.quartz.*;\r\n<span class=\"hljs-keyword\">import<\/span> org.quartz.impl.StdSchedulerFactory;\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">LogCleanupJob<\/span> <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title class_\">Job<\/span> {\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">execute<\/span><span class=\"hljs-params\">(JobExecutionContext context)<\/span> <span class=\"hljs-keyword\">throws<\/span> JobExecutionException {\r\n        <span class=\"hljs-comment\">\/\/ \u5220\u9664\u65e7\u65e5\u5fd7\u6587\u4ef6\u7684\u903b\u8f91<\/span>\r\n        <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> <span class=\"hljs-keyword\">throws<\/span> SchedulerException {\r\n        <span class=\"hljs-type\">JobDetail<\/span> <span class=\"hljs-variable\">job<\/span> <span class=\"hljs-operator\">=<\/span> JobBuilder.newJob(LogCleanupJob.class)\r\n                .withIdentity(<span class=\"hljs-string\">\"logCleanupJob\"<\/span>, <span class=\"hljs-string\">\"logCleanupGroup\"<\/span>)\r\n                .build();\r\n\r\n        <span class=\"hljs-type\">Trigger<\/span> <span class=\"hljs-variable\">trigger<\/span> <span class=\"hljs-operator\">=<\/span> TriggerBuilder.newTrigger()\r\n                .withIdentity(<span class=\"hljs-string\">\"logCleanupTrigger\"<\/span>, <span class=\"hljs-string\">\"logCleanupGroup\"<\/span>)\r\n                .startNow()\r\n                .withSchedule(CronScheduleBuilder.dailyAtHourAndMinute(<span class=\"hljs-number\">0<\/span>, <span class=\"hljs-number\">0<\/span>)) <span class=\"hljs-comment\">\/\/ \u6bcf\u59290\u70b9\u6267\u884c<\/span>\r\n                .build();\r\n\r\n        <span class=\"hljs-type\">Scheduler<\/span> <span class=\"hljs-variable\">scheduler<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">StdSchedulerFactory<\/span>().getScheduler();\r\n        scheduler.start();\r\n        scheduler.scheduleJob(job, trigger);\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the execute method, write the logic to delete old log files, using the File class in Java to delete files.<\/p>\n<ol>\n<li>Set up log4j to automatically delete old logs on a scheduled basis by configuring a timed task Appender in the log4j.properties file.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>log4j.appender.cleanupAppender=org.apache.log4j.net.SocketAppender\r\nlog4j.appender.cleanupAppender.Port=4712\r\nlog4j.appender.cleanupAppender.RemoteHost=localhost\r\nlog4j.appender.cleanupAppender.ReconnectionDelay=10000\r\nlog4j.appender.cleanupAppender.Application=LogCleanupJob\r\n<\/code><\/pre>\n<p>In the LogCleanupJob class, the logic for scheduled deletion of old logs can be triggered by using the SocketAppender.<\/p>\n<p>By following the steps above, you can achieve the functionality of log4j automatically deleting old logs. Please note that you need to configure the log4j.properties file and the relevant configurations of the scheduling framework.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To achieve the automatic deletion of old log files in log4j, you can use log4j&#8217;s RollingFileAppender and DailyRollingFileAppender together with a scheduling framework like Quartz. Set up a RollingFileAppender or DailyRollingFileAppender: In the log4j.properties file, configure a RollingFileAppender or DailyRollingFileAppender and define the file name and file rolling strategy. For example: log4j.appender.myAppender=org.apache.log4j.RollingFileAppender log4j.appender.myAppender.File=\/path\/to\/log\/file.log log4j.appender.myAppender.MaxFileSize=5MB log4j.appender.myAppender.MaxBackupIndex=10 [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[453,1402,299,1404,1403],"class_list":["post-16696","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-development","tag-guide","tag-programming","tag-technology","tag-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to implement scheduled deletion of old logs in log4... - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn about how to implement scheduled deletion of old logs in log4j?. Comprehensive guide with examples and best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to implement scheduled deletion of old logs in log4...\" \/>\n<meta property=\"og:description\" content=\"Learn about how to implement scheduled deletion of old logs in log4j?. Comprehensive guide with examples and best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T13:28:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-07T05:07:23+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"How to implement scheduled deletion of old logs in log4&#8230;\",\"datePublished\":\"2024-03-15T13:28:13+00:00\",\"dateModified\":\"2025-08-07T05:07:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/\"},\"wordCount\":212,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Development\",\"guide\",\"programming\",\"technology\",\"tutorial\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/\",\"name\":\"How to implement scheduled deletion of old logs in log4... - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T13:28:13+00:00\",\"dateModified\":\"2025-08-07T05:07:23+00:00\",\"description\":\"Learn about how to implement scheduled deletion of old logs in log4j?. Comprehensive guide with examples and best practices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to implement scheduled deletion of old logs in log4&#8230;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to implement scheduled deletion of old logs in log4... - Blog - Silicon Cloud","description":"Learn about how to implement scheduled deletion of old logs in log4j?. Comprehensive guide with examples and best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/","og_locale":"en_US","og_type":"article","og_title":"How to implement scheduled deletion of old logs in log4...","og_description":"Learn about how to implement scheduled deletion of old logs in log4j?. Comprehensive guide with examples and best practices.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T13:28:13+00:00","article_modified_time":"2025-08-07T05:07:23+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"How to implement scheduled deletion of old logs in log4&#8230;","datePublished":"2024-03-15T13:28:13+00:00","dateModified":"2025-08-07T05:07:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/"},"wordCount":212,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Development","guide","programming","technology","tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/","name":"How to implement scheduled deletion of old logs in log4... - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T13:28:13+00:00","dateModified":"2025-08-07T05:07:23+00:00","description":"Learn about how to implement scheduled deletion of old logs in log4j?. Comprehensive guide with examples and best practices.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-scheduled-deletion-of-old-logs-in-log4j\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to implement scheduled deletion of old logs in log4&#8230;"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=16696"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16696\/revisions"}],"predecessor-version":[{"id":159497,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16696\/revisions\/159497"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=16696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=16696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=16696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}