{"id":5419,"date":"2023-09-26T02:40:30","date_gmt":"2023-09-26T01:40:30","guid":{"rendered":"https:\/\/www.baeldung.com\/java-log4j2-config-with-prop-file"},"modified":"2023-09-26T02:40:30","modified_gmt":"2023-09-26T01:40:30","slug":"log4j-2-configuration-using-a-properties-file","status":"publish","type":"post","link":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/2023\/09\/26\/log4j-2-configuration-using-a-properties-file\/","title":{"rendered":"Log4j 2 Configuration Using a Properties File"},"content":{"rendered":"<p><img src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-7-Featured-1024x536.png\" class=\"webfeedsFeaturedVisual wp-post-image\" alt=\"\" decoding=\"async\" style=\"float: left; margin-right: 5px;\" loading=\"lazy\" srcset=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-7-Featured-1024x536.png 1024w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-7-Featured-300x157.png 300w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-7-Featured-768x402.png 768w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-7-Featured-100x52.png 100w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-7-Featured.png 1200w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/p>\n<h2 id=\"bd-introduction\" data-id=\"introduction\">1. Introduction<\/h2>\n<div class=\"bd-anchor\" id=\"introduction\"><\/div>\n<p>Log4j 2 is a popular, open-source <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/java-logging-intro\">logging framework<\/a> written in Java. It was introduced to overcome various architectural flaws of Log4j. It&#8217;s thread-safe, fast, and provides various improvements over its predecessor. It&#8217;s distributed under the open-source Apache Software License.<\/p>\n<p><strong><a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/java-logging-intro\">Log4j 2<\/a> is the latest and improved version of the classic Log4j framework that reached the end of its life on August 5, 2015. However, Log4j is still widely used in many Java enterprise applications as a logging framework.<\/strong><\/p>\n<p>In this tutorial, we&#8217;ll learn about Log4j 2, its benefits over Log4j, and how to configure its core components using the <em>log4j2.properties<\/em> file in Java.<\/p>\n<h2  data-id=\"setup\" id=\"bd-bd-setup\" data-id=\"bd-setup\">2. Maven Setup<\/h2>\n<div class=\"bd-anchor\" id=\"bd-setup\"><\/div>\n<p>We&#8217;ll need the <em>log4j-core<\/em>\u00a0dependency in our\u00a0<em>pom.xml<\/em> to start with:<\/p>\n<pre><code class=\"language-java\">&lt;dependency&gt;\r\n    &lt;groupId&gt;org.apache.logging.log4j&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;log4j-core&lt;\/artifactId&gt;\r\n    &lt;version&gt;2.20.0&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n&lt;dependency&gt;\r\n    &lt;groupId&gt;org.apache.logging.log4j&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;log4j-api&lt;\/artifactId&gt;\r\n    &lt;version&gt;2.20.0&lt;\/version&gt;\r\n&lt;\/dependency&gt;<\/code><\/pre>\n<p>We can find the latest version of <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/mvnrepository.com\/artifact\/org.apache.logging.log4j\/log4j-core\"><em>log4j-core<\/em><\/a>\u00a0and <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/mvnrepository.com\/artifact\/org.apache.logging.log4j\/log4j-api\"><em>log4j-api<\/em><\/a> in the Maven Repository.<\/p>\n<h2 id=\"bd-log4j-2-logger\" data-id=\"log4j-2-logger\">3. Log4j 2 <em>Logger<\/em><\/h2>\n<div class=\"bd-anchor\" id=\"log4j-2-logger\"><\/div>\n<p>Unlike in Log4j, where we use <em>Logger.getLogger()<\/em> to get a <em>Logger<\/em> instance with a specific name, in Log4j 2 we use <em>LogManager.getLogger()<\/em>:<\/p>\n<pre><code class=\"language-java\">private static final Logger logger = LogManager.getLogger(Log4j2Example.class);<\/code><\/pre>\n<p>The <em>LogManager<\/em> reads the initial configuration parameters from a configuration file or a configuration class. A <em>Logger<\/em> is associated with <em>LoggerConfig<\/em>, which is associated with <em>Appender<\/em>s that actually deliver the log events.<\/p>\n<p><strong>If we call <em>LogManager.getLogger()<\/em> by passing the same (class) name, we&#8217;ll always get the reference of the same logger instance.<\/strong><\/p>\n<p>Both <em>Logger<\/em> and <em>LoggerConfig<\/em> are named entities. Each <em>Logger<\/em> references a <em>LoggerConfig,<\/em> which can reference its parent, thus achieving the same effect.<\/p>\n<p>A <em>Logger<\/em> follows a named hierarchy. This means a <em>LoggerConfig<\/em> named &#8220;<em>com.baeldung<\/em>&#8221; is a parent of the <em>LoggerConfig<\/em> named &#8220;<em>com.baeldung.foo<\/em>&#8220;.<\/p>\n<h2 id=\"bd-log4j-2-configuration\" data-id=\"log4j-2-configuration\">4. Log4j 2 Configuration<\/h2>\n<div class=\"bd-anchor\" id=\"log4j-2-configuration\"><\/div>\n<p>Unlike Log4j, which supports configuration only through properties and XML formats, we can <strong>define the Log4j 2 configurations using<\/strong> <strong>JSON, XML, YAML, or properties format. <\/strong>All these formats are functionally equivalent. Therefore, we can easily convert the configuration done in one format to any other.<\/p>\n<p><strong>Moreover, Logj2 supports <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/logging.apache.org\/log4j\/2.x\/manual\/configuration.html#automatic-configuration\">automatic configuration<\/a>, which means it&#8217;s capable of configuring itself automatically during initialization.<\/strong><\/p>\n<p>It scans and locates all the <em>ConfigurationFactory<\/em> plugins at the start and arranges them in weighted order from highest to lowest &#8211; the properties file has the highest precedence of the value of <em>8<\/em>, followed by YAML, JSON, and XML.<\/p>\n<p>This means if we have logging configurations in the form of both the properties file and the XML file, then the precedence will be given to the properties file.<\/p>\n<h2 id=\"bd-the-log4j2properties-file\" data-id=\"the-log4j2properties-file\">5. The <em>log4j2.properties<\/em> File<\/h2>\n<div class=\"bd-anchor\" id=\"the-log4j2properties-file\"><\/div>\n<p>When Log4j 2 was released, it didn&#8217;t have the support for configuration through the properties file. It started supporting the properties file from the release of version 2.4.<\/p>\n<p>The default properties configuration file is always <em>log4j2.properties<\/em>. The <em>Logger<\/em> gets the reference of this file from the <em><a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/java-classpath-vs-build-path\">CLASSPATH<\/a><\/em>.<\/p>\n<p>However, <strong>if we need to use a different configuration file name, we can set it using the system property <em>log4j.configurationFile<\/em>.<\/strong><\/p>\n<p>The system property may refer to a local file system or may contain a URL. Log4j 2 provides a <em>DefaultConfiguration<\/em> if it cannot locate a configuration file. In this case, we get the logging output redirected to the console and the <em>root logger<\/em> level set to <em>ERROR<\/em>.<\/p>\n<h2 id=\"bd-syntax-of-the-log4j2properties-file\" data-id=\"syntax-of-the-log4j2properties-file\">6. Syntax of the <em>log4j2.properties<\/em> File<\/h2>\n<div class=\"bd-anchor\" id=\"syntax-of-the-log4j2properties-file\"><\/div>\n<p>The syntax of the <em>log4j2.properties<\/em> file isn&#8217;t the same as that of <em>log4j.properties<\/em>. In the <em>log4j.properties<\/em> file, every configuration starts with &#8216;<em>log4j<\/em>&#8216;, while this has been omitted in the <em>log4j2.properties<\/em> configuration.<\/p>\n<p>Let&#8217;s see the syntax of a general <em>log4j2.properties<\/em> file:<\/p>\n<pre><code class=\"language-properties\"># The root logger with appender name \r\nrootLogger = DEBUG, STDOUT\r\n  \r\n# Assign STDOUT a valid appender &amp; define its layout  \r\nappender.console.name = STDOUT\r\nappender.console.type = Console\r\nappender.console.layout.type = PatternLayout\r\nappender.console.layout.pattern = %msg%n  <\/code><\/pre>\n<p>Here, <em>STDOUT<\/em> is the name of the <em>Appender<\/em>. As discussed earlier, we can attach multiple <em>appender<\/em>s to a <em>logger<\/em> to direct logs to different destinations.<\/p>\n<p><strong>Also, we should define a root logger in every Log4j 2 configuration. Otherwise, a default <em>root LoggerConfig<\/em> that has an <em>ERROR<\/em> level and <em>ConsoleAppender <\/em>is used.<\/strong><\/p>\n<h2 id=\"bd-examples\" data-id=\"examples\">7. Examples<\/h2>\n<div class=\"bd-anchor\" id=\"examples\"><\/div>\n<p>Now, let&#8217;s understand the <em>log4j2.properties<\/em> file configurations for <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/log4j2-appenders-layouts-filters\">different <em>appender<\/em>s<\/a> with the help of some examples.<\/p>\n<h3 id=\"bd-1-sample-program\" data-id=\"1-sample-program\">7.1. Sample Program<\/h3>\n<div class=\"bd-anchor\" id=\"1-sample-program\"><\/div>\n<p>Let&#8217;s start with an example application that logs some messages:<\/p>\n<pre><code class=\"language-java\">public class Log4j2ConsoleAndFile {\r\n    private static final Logger logger = LogManager.getLogger(Log4j2ConsoleAndFile.class);\r\n    public static void main(String[] args) {\r\n        logger.info(&lt;span class=&quot;hljs-string&quot;&gt;&quot;Hello World!&quot;&lt;\/span&gt;);\r\n        logger.debug(&lt;span class=&quot;hljs-string&quot;&gt;&quot;Hello World!&quot;&lt;\/span&gt;);\r\n    }\r\n}<\/code><\/pre>\n<h3 id=\"bd-2-console-logging\" data-id=\"2-console-logging\">7.2. Console Logging<\/h3>\n<div class=\"bd-anchor\" id=\"2-console-logging\"><\/div>\n<p>The console is the default place for logging messages if no configuration file is located. Let&#8217;s create a <em>log4j2.properties<\/em> configuration for the console <em>Appender<\/em> with the <em>root logger<\/em> and also define the logging level for it:<\/p>\n<pre><code class=\"language-properties\"># Root Logger\r\nrootLogger=DEBUG, &lt;span class=&quot;hljs-string&quot;&gt;STDOUT&lt;\/span&gt;\r\n# Direct log messages to stdout\r\n&lt;span class=&quot;hljs-attr&quot;&gt;appender.console.type&lt;\/span&gt; = &lt;span class=&quot;hljs-string&quot;&gt;Console\r\n&lt;\/span&gt;&lt;span class=&quot;hljs-attr&quot;&gt;appender.console.name&lt;\/span&gt; = &lt;span class=&quot;hljs-string&quot;&gt;STDOUT\r\n&lt;\/span&gt;&lt;span class=&quot;hljs-attr&quot;&gt;appender.console.layout.type&lt;\/span&gt; = &lt;span class=&quot;hljs-string&quot;&gt;PatternLayout\r\n&lt;\/span&gt;&lt;span class=&quot;hljs-attr&quot;&gt;appender.console.layout.pattern&lt;\/span&gt; = &lt;span class=&quot;hljs-string&quot;&gt;[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n&lt;\/span&gt;\r\n<\/code><\/pre>\n<p>Here, we&#8217;ve defined a <em>log4j2.properties<\/em> file with the following specifications:<\/p>\n<ul>\n<li>We&#8217;ve defined the level of the <em>root logger<\/em> as <em>DEBUG<\/em>. This means that we&#8217;ll get all the log events with level <em>DEBUG<\/em> and above. We&#8217;ve also defined a name for the <em>appender<\/em> as <em>STDOUT<\/em>.<\/li>\n<li>Since we want to direct the logs to the console, we assigned the <em>Appender type <\/em>as <em>Console<\/em>. We should note that the word\u00a0<em>console<\/em>\u00a0in the key name is only a convention and not mandatory.<\/li>\n<li>Then, we specify the pattern in which we want to print the log messages.<\/li>\n<\/ul>\n<p>Let&#8217;s also understand the meaning of each of the conversion characters in the <em>layout<\/em> pattern that we&#8217;ve used:<\/p>\n<ul>\n<li><em>%-5level<\/em> adds the log-level information to each log statement. It signifies that the priority of the logging event is left-justified to a width of five characters.<\/li>\n<li><em>%d<\/em> adds the timestamp in the defined format.<\/li>\n<li><em>%t<\/em> adds the thread name to the log statement<\/li>\n<li><em>%c{1}<\/em> prints the qualified class name, optionally followed by package names (precision qualifier)<em>, <\/em>that logs the specific log statement.<\/li>\n<li><em>%msg<\/em> prints the actual log message.<\/li>\n<li><em>%n<\/em> adds a new line\u00a0after every log statement.<\/li>\n<\/ul>\n<p>Thus, when we run our sample application, we get the following lines printed on the console:<\/p>\n<pre><code class=\"language-java\">[INFO ] 2023-08-05 23:04:03.255 [main] Log4j2ConsoleAndFile - Hello World!\r\n[DEBUG] 2023-08-05 23:04:03.255 [main] Log4j2ConsoleAndFile - Hello World!<\/code><\/pre>\n<p><strong>The class <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/PatternLayout.html\"><em>PatternLayout<\/em><\/a> explains more about conversion characters that we can use based on our needs.<\/strong><\/p>\n<h3 id=\"bd-3-multiple-destinations\" data-id=\"3-multiple-destinations\">7.3. Multiple Destinations<\/h3>\n<div class=\"bd-anchor\" id=\"3-multiple-destinations\"><\/div>\n<p>As discussed earlier, we can redirect the log events to multiple destinations:<\/p>\n<pre><code class=\"language-java\"># Root Logger\r\nrootLogger=INFO, STDOUT, &lt;span class=&quot;hljs-string&quot;&gt;LOGFILE&lt;\/span&gt;\r\n# Direct log messages to STDOUT\r\nappender.console.type = Console\r\nappender.console.name = STDOUT\r\nappender.console.layout.type = PatternLayout\r\nappender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n\r\n# Direct to a file\r\n&lt;span class=&quot;hljs-attr&quot;&gt;appender.file.type&lt;\/span&gt; = &lt;span class=&quot;hljs-string&quot;&gt;File\r\n&lt;\/span&gt;&lt;span class=&quot;hljs-attr&quot;&gt;appender.file.name&lt;\/span&gt; = &lt;span class=&quot;hljs-string&quot;&gt;LOGFILE\r\n&lt;\/span&gt;&lt;span class=&quot;hljs-attr&quot;&gt;appender.file.fileName &lt;\/span&gt;= baeldung\/&lt;span class=&quot;hljs-string&quot;&gt;logs\/log4j2.log\r\n&lt;\/span&gt;&lt;span class=&quot;hljs-attr&quot;&gt;appender.file.layout.type &lt;\/span&gt;= &lt;span class=&quot;hljs-string&quot;&gt;PatternLayout\r\n&lt;\/span&gt;&lt;span class=&quot;hljs-attr&quot;&gt;appender.file.layout.pattern &lt;\/span&gt;= &lt;span class=&quot;hljs-string&quot;&gt;[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n\r\n&lt;\/span&gt;&lt;span class=&quot;hljs-attr&quot;&gt;appender.file.filter.threshold.type&lt;\/span&gt; = &lt;span class=&quot;hljs-string&quot;&gt;ThresholdFilter\r\n&lt;\/span&gt;&lt;span class=&quot;hljs-attr&quot;&gt;appender.file.filter.threshold.level&lt;\/span&gt; = &lt;span class=&quot;hljs-string&quot;&gt;info&lt;\/span&gt;<\/code><\/pre>\n<p>Here, we&#8217;ve used two <em>appender<\/em>s to redirect the log messages to both the file and console. We&#8217;ve named them <em>STDOUT<\/em> and <em>LOGFILE<\/em>. Additionally, we&#8217;ve added both <em>appender<\/em>s to the <em>root logger<\/em>.<\/p>\n<p><strong>To redirect the log messages to a file, we need to specify the file name with its location.<\/strong><\/p>\n<p>We&#8217;ve also used <em>ThresholdFilter,<\/em> which filters out the log messages with a certain log level and above. Finally, we&#8217;ve specified the <em>threshold.level<\/em> as <em>INFO. Thus,<\/em>\u00a0all the log messages with level <em>INFO<\/em> or above will be printed to the file.<\/p>\n<p>When we run our sample application, we get only the following line printed on the console as well as the <em>log4j2.log<\/em> file:<\/p>\n<pre><code class=\"language-java\">[INFO ] 2023-08-05 23:04:03.255 [main] Log4j2ConsoleAndFile - Hello World!<\/code><\/pre>\n<h2 id=\"bd-conclusion\" data-id=\"conclusion\">8. Conclusion<\/h2>\n<div class=\"bd-anchor\" id=\"conclusion\"><\/div>\n<p>In this article, we explored Log4j 2 and its benefits over Log4j. We&#8217;ve also understood the syntax of a <em>log4j2.properties<\/em> file and some simple examples of configuring a <em>log4j2.properties<\/em> file.<\/p>\n<p>As always, the examples that accompany the article are available <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/github.com\/eugenp\/tutorials\/tree\/master\/logging-modules\/log4j2\">over on GitHub<\/a>.<\/p>\n<p><Img align=\"left\" border=\"0\" height=\"1\" width=\"1\" alt=\"\" style=\"border:0;float:left;margin:0;padding:0;width:1px!important;height:1px!important;\" hspace=\"0\" src=\"https:\/\/feeds.feedblitz.com\/~\/i\/795241082\/0\/baeldung\"><\/p>\n<div style=\"clear:both;padding-top:0.2em;\"><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/795241082\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/795241082\/baeldung,https%3A%2F%2Fwww.baeldung.com%2Fwp-content%2Fuploads%2F2021%2F09%2FJava-7-Featured-1024x536.png\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/795241082\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/795241082\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/795241082\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/java-log4j2-config-with-prop-file#respond\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>&#160;<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/java-log4j2-config-with-prop-file\/feed\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>&#160;<\/div>\n\n<h2><b>Commercials Cooperation Advertisements:<\/b><\/h2>\r\n<p><br>(1) IT Teacher IT Freelance<br> <\/p>\r\n<a href=https:\/\/itteacheritfreelance.hk\/wordpress><img src=http:\/\/gamefootballmobileanimeiphone.com\/wp-content\/uploads\/2023\/09\/ITTeacherITFreelance-Website.png alt=IT\u96fb\u8166\u88dc\u7fd2 java\u88dc\u7fd2 \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b, PHP\u88dc\u7fd2,CSS\u88dc\u7fd2,XML,Java\u88dc\u7fd2,MySQL\u88dc\u7fd2,graphic design\u88dc\u7fd2,\u4e2d\u5c0f\u5b78ICT\u88dc\u7fd2,\u4e00\u5c0d\u4e00\u79c1\u4eba\u88dc\u7fd2\u548cFreelance\u81ea\u7531\u5de5\u4f5c\u914d\u5c0d\u3002\/><\/a><p><a href=https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/findteacher>\u7acb\u523b\u8a3b\u518a\u53ca\u5831\u540d\u96fb\u8166\u88dc\u7fd2\u8ab2\u7a0b\u5427! <\/a><br>\r\n\r\n\u7535\u5b50\u8ba1\u7b97\u673a -\u6559\u80b2 -IT \u96fb\u8166\u73ed\u201d ( IT\u96fb\u8166\u88dc\u7fd2 ) \u63d0\u4f9b\u4e00\u500b\u65b9\u4fbf\u7684\u7535\u5b50\u8ba1\u7b97\u673a \u6559\u80b2\u5e73\u53f0, \u70ba\u5927\u5bb6\u914d\u5c0d\u4fe1\u606f\u6280\u672f, \u96fb\u8166 \u8001\u5e2b, IT freelance \u548c programming expert. \u8b93\u5927\u5bb6\u65b9\u4fbf\u5730\u5c31\u80fd\u627e\u5230\u5408\u9069\u7684\u96fb\u8166\u88dc\u7fd2, \u96fb\u8166\u73ed, \u5bb6\u6559, \u79c1\u4eba\u8001\u5e2b.  <br>\r\n\r\nWe are a education and information platform which you can find a IT private tutorial teacher or freelance. <br>\r\n\r\nAlso we provide different information about information technology, Computer, programming, mobile, Android, apple, game, movie, anime, animation\u2026 \r\n<\/p>\n<p><br>(2) ITSec<br> <\/p><a href=https:\/\/itsec.vip><img src=http:\/\/gamefootballmobileanimeiphone.com\/wp-content\/uploads\/2023\/09\/ITSec-Main-Promotion-Image.png alt= https:\/\/itsec.vip\/\r\nSecure Your Computers from Cyber Threats and mitigate risks with professional services to defend Hackers.  \r\nITSec provide IT Security and Compliance Services, including IT Compliance Services, Risk Assessment, IT Audit, Security Assessment and Audit, ISO 27001 Consulting and Certification, GDPR Compliance Services, Privacy Impact Assessment (PIA), Penetration test, Ethical Hacking, Vulnerabilities scan, IT Consulting, Data Privacy Consulting, Data Protection Services, Information Security Consulting, Cyber Security Consulting, Network Security Audit, Security Awareness Training.\/><\/a> \r\n<br><br> \r\n<p><a href=https:\/\/itsec.vip>www.ITSec.vip<\/a> <br> <br> \r\n<p><a href=https:\/\/sraa.com.hk>www.Sraa.com.hk<\/a> <br> <br> \r\n<p><a href=https:\/\/itsec.hk>www.ITSec.hk<\/a> <br> <br> \r\n<p><a href=https:\/\/penetrationtest.hk>www.Penetrationtest.hk<\/a> <br> <br> \r\n<p><a href=https:\/\/itseceu.uk>www.ITSeceu.uk<\/a> <br> <br> \r\nSecure Your Computers from Cyber Threats and mitigate risks with professional services to defend Hackers. <br><br>\r\nITSec provide IT Security and Compliance Services, including IT Compliance Services, Risk Assessment, IT Audit, Security Assessment and Audit, ISO 27001 Consulting and Certification, GDPR Compliance Services, Privacy Impact Assessment (PIA), Penetration test, Ethical Hacking, Vulnerabilities scan, IT Consulting, Data Privacy Consulting, Data Protection Services, Information Security Consulting, Cyber Security Consulting, Network Security Audit, Security Awareness Training. \r\n<br><br>Contact us right away. <br><br>Email (Prefer using email to contact us): <br>SalesExecutive@ITSec.vip<\/p>","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-7-Featured-1024x536.png\" class=\"webfeedsFeaturedVisual wp-post-image\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Learn about Log4j 2, its benefits over Log4j, and how to configure its core components using the log4j2.properties file in Java.<\/p>\n<div><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/795241082\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\"><\/a>\u00a0<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/795241082\/baeldung,https%3A%2F%2Fwww.baeldung.com%2Fwp-content%2Fuploads%2F2021%2F09%2FJava-7-Featured-1024x536.png\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\"><\/a>\u00a0<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/795241082\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\"><\/a>\u00a0<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/795241082\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\"><\/a>\u00a0<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/795241082\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\"><\/a>\u00a0<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/java-log4j2-config-with-prop-file#respond\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>\u00a0<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/java-log4j2-config-with-prop-file\/feed\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>\u00a0<\/div>\n","protected":false},"author":256,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[22],"tags":[61,122,127,129,124,128,125,132,131,133,126,130,123,66,94,88,97,56,64,65,60,112,40,75,95,104,33,120,105,101,98,115,30,29,41,86,70,69,68,72,71,26,118,108,87,46,55,48,52,54,51,50,83,62,58,57,109,35,59,63,85,79,82,96,80,27,81,114,44,42,43,45,38,39,110,117,100,111,116,73,89,90,92,91,93,84,78,37,102,34,36,77,67,74,99,113,119,28,121,32,47,49,53,103,31,76],"class_list":["post-5419","post","type-post","status-publish","format-standard","hentry","category-mobile","tag-airpods","tag-anime","tag-anime-characters","tag-anime-cosplay","tag-anime-edits","tag-anime-merchandise","tag-anime-movies","tag-anime-news","tag-anime-recommendations","tag-anime-reviews","tag-anime-series","tag-anime-streaming","tag-animes","tag-app-store","tag-app-store-samsung","tag-appgallery","tag-appgallery-oneplus","tag-apple","tag-apple-music","tag-apple-tv","tag-apple-watch","tag-bbc-sport","tag-best-mobile-games","tag-bixby","tag-bixby-xiaomi","tag-champions-league","tag-cyberpunk","tag-cyberpunk-2077","tag-fantasy-football","tag-fifa","tag-football","tag-formula-1","tag-fortnite","tag-free-fire","tag-free-mobile-games","tag-freebuds-pro","tag-galaxy-a52","tag-galaxy-note-20","tag-galaxy-s21","tag-galaxy-watch-4","tag-galaxy-z-fold-3","tag-game","tag-games","tag-golf","tag-harmonyos","tag-how-to-backup-iphone","tag-how-to-factory-reset-iphone","tag-how-to-reset-iphone","tag-how-to-restore-iphone","tag-how-to-unlock-iphone","tag-how-to-unlock-iphone-5","tag-how-to-unlock-iphone-6","tag-huawei","tag-ios","tag-ipad","tag-iphone","tag-live-soccer","tag-lol","tag-macbook","tag-macos","tag-mate-40-pro","tag-mi-11-lite","tag-mi-home-security-camera-basic-1080p","tag-mi-home-security-camera-basic-1080p-huawei","tag-mi-smart-band-6","tag-minecraft","tag-miui","tag-mlb-scores","tag-mobile-game-design","tag-mobile-game-development","tag-mobile-game-marketing","tag-mobile-game-monetization","tag-mobile-games","tag-mobile-gaming","tag-nba-scores","tag-nba-standings","tag-nfl","tag-nfl-scores","tag-nhl-scores","tag-one-ui","tag-oneplus","tag-oneplus-9-pro","tag-oneplus-buds-pro","tag-oneplus-nord-ce-5g","tag-oxygenos","tag-p40-pro-plus","tag-poco-x3-pro","tag-pokemon","tag-premier-league","tag-pubg","tag-pubg-mobile","tag-redmi-note-10-pro","tag-samsung","tag-samsung-pay","tag-soccer","tag-sports","tag-steam","tag-steeam","tag-top-10-anime","tag-valorant","tag-when-do-the-iphone-7-come-out","tag-when-does-the-iphone-7-come-out","tag-when-is-the-iphone-7-coming-out","tag-world-cup","tag-xbox-series-x","tag-xiaomi"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts\/5419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/users\/256"}],"replies":[{"embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/comments?post=5419"}],"version-history":[{"count":3,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts\/5419\/revisions"}],"predecessor-version":[{"id":7039,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts\/5419\/revisions\/7039"}],"wp:attachment":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/media?parent=5419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/categories?post=5419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/tags?post=5419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}