<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>日志 &#8211; 编码无悔 /  Intent &amp; Focused</title>
	<atom:link href="https://www.codelast.com/tag/%E6%97%A5%E5%BF%97/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.codelast.com</link>
	<description>最优化之路</description>
	<lastBuildDate>Fri, 28 Jan 2022 18:58:34 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>[原创] 在IntelliJ中运行Java unit test(单元测试)时打印出&quot;log4j:ERROR Either File or DatePattern options are not set for appender&quot;的问题</title>
		<link>https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%9c%a8intellij%e4%b8%ad%e8%bf%90%e8%a1%8cjava-unit-test%e5%8d%95%e5%85%83%e6%b5%8b%e8%af%95%e6%97%b6%e6%89%93%e5%8d%b0%e5%87%balog4jerror-either-file-or-datepattern-option/</link>
					<comments>https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%9c%a8intellij%e4%b8%ad%e8%bf%90%e8%a1%8cjava-unit-test%e5%8d%95%e5%85%83%e6%b5%8b%e8%af%95%e6%97%b6%e6%89%93%e5%8d%b0%e5%87%balog4jerror-either-file-or-datepattern-option/#respond</comments>
		
		<dc:creator><![CDATA[learnhard]]></dc:creator>
		<pubDate>Fri, 28 Jan 2022 18:52:18 +0000</pubDate>
				<category><![CDATA[原创]]></category>
		<category><![CDATA[IntelliJ]]></category>
		<category><![CDATA[log4j]]></category>
		<category><![CDATA[单元测试]]></category>
		<category><![CDATA[日志]]></category>
		<guid isPermaLink="false">https://www.codelast.com/?p=13449</guid>

					<description><![CDATA[<p>当你在IntelliJ&#160;idea中跑一个Java单元测试时，可能会发现单元测试本身没有任何问题，可以成功执行，但是IntelliJ的日志输出窗口里却打印出大量的&#8220;错误&#8221;日志，类似于下面这样：<br />
<span id="more-13449"></span></p>
<blockquote>
<div>
		<span style="font-size:14px;">log4j:ERROR setFile(null,true) call failed.</span></div>
<div>
		<span style="font-size:14px;">java.io.FileNotFoundException: / (Is a directory)</span></div>
<div>
		<span style="font-size:14px;">at java.io.FileOutputStream.open0(Native Method)</span></div>
<div>
		<span style="font-size:14px;">at java.io.FileOutputStream.open(FileOutputStream.java:270)</span></div>
<div>
		<span style="font-size:14px;">at java.io.FileOutputStream.&#60;init&#62;(FileOutputStream.java:213)</span></div>
<div>
		<span style="font-size:14px;">at java.io.FileOutputStream.&#60;init&#62;(FileOutputStream.java:133)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)</span></div></blockquote>&#8230; <a href="https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%9c%a8intellij%e4%b8%ad%e8%bf%90%e8%a1%8cjava-unit-test%e5%8d%95%e5%85%83%e6%b5%8b%e8%af%95%e6%97%b6%e6%89%93%e5%8d%b0%e5%87%balog4jerror-either-file-or-datepattern-option/" class="read-more">Read More </a>]]></description>
										<content:encoded><![CDATA[<p>当你在IntelliJ&nbsp;idea中跑一个Java单元测试时，可能会发现单元测试本身没有任何问题，可以成功执行，但是IntelliJ的日志输出窗口里却打印出大量的&ldquo;错误&rdquo;日志，类似于下面这样：<br />
<span id="more-13449"></span></p>
<blockquote>
<div>
		<span style="font-size:14px;">log4j:ERROR setFile(null,true) call failed.</span></div>
<div>
		<span style="font-size:14px;">java.io.FileNotFoundException: / (Is a directory)</span></div>
<div>
		<span style="font-size:14px;">at java.io.FileOutputStream.open0(Native Method)</span></div>
<div>
		<span style="font-size:14px;">at java.io.FileOutputStream.open(FileOutputStream.java:270)</span></div>
<div>
		<span style="font-size:14px;">at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:213)</span></div>
<div>
		<span style="font-size:14px;">at java.io.FileOutputStream.&lt;init&gt;(FileOutputStream.java:133)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)</span></div>
<div>
		<span style="font-size:14px;">at org.apache.log4j.LogManager.&lt;clinit&gt;(LogManager.java:127)</span></div>
<div>
		<span style="font-size:14px;">at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:66)</span></div>
<div>
		<span style="font-size:14px;">at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)</span></div>
<div>
		<span style="font-size:14px;">at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)</span></div>
<div>
		<span style="font-size:14px;">&nbsp; &nbsp; (后面很长，省略)</span></div>
<div>
		<span style="font-size:14px;"><span style="color:#ff0000;">log4j:ERROR Either File or DatePattern options are not set for appender [LOCAL].</span></span></div>
</blockquote>
<p>这和你的单元测试没有任何关系，它是因为程序中使用的日志库&nbsp;log4j 在默认的路径下找不到log4j配置文件导致的。如果你的项目使用了标准的目录布局，那么应该在 <span style="color:#0000ff;">resources</span>&nbsp;目录下有一个&nbsp;<span style="color:#0000ff;">log4j.properties</span>&nbsp;配置文件，类似于下面这样：</p>
<section class="output_wrapper" id="output_wrapper_id" style="font-size: 16px; color: rgb(62, 62, 62); line-height: 1.6; letter-spacing: 0px; font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;">
<pre style="font-size: inherit; color: inherit; line-height: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px;">
<code class="javascript language-javascript hljs" style="margin: 0px 2px; line-height: 18px; font-size: 14px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); padding: 0.5em; overflow-wrap: normal !important; word-break: normal !important; overflow: auto !important; display: -webkit-box !important;">└──&nbsp;test
&nbsp;&nbsp;&nbsp;&nbsp;├──&nbsp;java
&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;└──&nbsp;com
&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└──&nbsp;codelast
&nbsp;&nbsp;&nbsp;&nbsp;│&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└──&nbsp;MyUnitTest.java
&nbsp;&nbsp;&nbsp;&nbsp;└──&nbsp;resources
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└──&nbsp;log4j.properties
</code></pre>
</section>
<p> 其中 test 目录下存放所有和单元测试相关的代码文件以及配置文件，下面有两个平级的目录：java 和 resources。<br />
log4j.properties文件的内容：</p>
<section class="output_wrapper" id="output_wrapper_id" style="font-size: 16px; color: rgb(62, 62, 62); line-height: 1.6; letter-spacing: 0px; font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;">
<pre style="font-size: inherit; color: inherit; line-height: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px;">
<code class="javascript language-javascript hljs" style="margin: 0px 2px; line-height: 18px; font-size: 14px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); padding: 0.5em; overflow-wrap: normal !important; word-break: normal !important; overflow: auto !important; display: -webkit-box !important;">log4j.rootLogger=INFO,stdout
log4j.appender.stdout&nbsp;=&nbsp;org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target&nbsp;=&nbsp;System.out
log4j.appender.stdout.layout&nbsp;=&nbsp;org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern&nbsp;=&nbsp;%d{<span class="hljs-attr" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">HH</span>:mm:ss}&nbsp;[%p]:%m%n
</code></pre>
</section>
<p>这样你再运行 IntelliJ 里的单元测试，就不会打印出上面那些超长的错误日志了。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;版权声明&nbsp;<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;<br />
转载需注明出处：<u><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><em><span style="color: rgb(0, 0, 255);"><strong style="font-size: 16px;"><span style="font-family: arial, helvetica, sans-serif;">codelast.com</span></strong></span></em></a></u>&nbsp;<br />
感谢关注我的微信公众号（微信扫一扫）：<br />
<img decoding="async" alt="wechat qrcode of codelast" src="https://www.codelast.com/codelast_wechat_qr_code.jpg" style="color: rgb(77, 77, 77); font-size: 13px; width: 200px; height: 200px;" /><br />
以及我的微信视频号：</p>
<p style="border: 0px; font-size: 13px; margin: 0px 0px 9px; outline: 0px; padding: 0px; color: rgb(77, 77, 77);">
	<img decoding="async" alt="" src="https://www.codelast.com/wechat_shipinhao_qr_code.jpg" style="text-align: center; width: 200px; height: 199px;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%9c%a8intellij%e4%b8%ad%e8%bf%90%e8%a1%8cjava-unit-test%e5%8d%95%e5%85%83%e6%b5%8b%e8%af%95%e6%97%b6%e6%89%93%e5%8d%b0%e5%87%balog4jerror-either-file-or-datepattern-option/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
