先日書いたLog4Net.Config.Xmlファイルですが、SharpDevelop から一発で追加できるようにしたい!
VisualStudio ではよく使うファイルをテンプレートとして保存することができるのに、SharpDevelop にはメニューにすらない!
SharpDevelop でもでプロジェクトテンプレートやファイルテンプレートをカスタマイズしたい!
というわけで、調べてみました。
プロジェクトテンプレートやファイルテンプレートが保存されている場所は、
[SharpDevelop をインストールしたディレクトリ]~data\templates みたい。
うちの環境では C:\Program Files\SharpDevelop\4.2\data\templates
そこにある他のテンプレート(.xpt)ファイルを真似て、C:\Program Files\SharpDevelop\4.2\data\templates\file\Misc
の下に、以下のファイルを追加してみました。
Log4NetConfigFile.xft
<?xml version="1.0"?>
<Template author="rohinomiya" version="1.0">
<Config
name = "Log4Net.Config.xml"
icon = "Icons.32x32.XMLFileIcon"
category = "${res:Templates.File.Categories.Misc}"
defaultname= "Log4Net.Config.xml"
language = "XML"/>
<Description>Log4Net Configuration XML File</Description>
<Files>
<File name="${FullName}" language="XML"><![CDATA[<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<!-- Normal Log / Append File -->
<appender name="InfoLogDailyAppender" type="log4net.Appender.FileAppender">
<File value="${APPDATA}\\Rohinomiya\\SampleLog4Net\\Logs\\Info.log" />
<AppendToFile value="true" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMax" value="WARN" />
<param name="LevelMin" value="INFO" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%thread] [%-5level] %logger - %message%n" />
</layout>
</appender>
<!-- Error Log / Rolling File -->
<appender name="ErrorLogDailyAppender" type="log4net.Appender.RollingFileAppender">
<!-- Daily File -->
<param name="File" value="${APPDATA}\\Rohinomiya\\SampleLog4Net\\Logs\\Error_" />
<param name="DatePattern" value='yyyyMMdd".log"' />
<param name="RollingStyle" value="date" />
<param name="StaticLogFileName" value="false" />
<param name="AppendToFile" value="true" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMax" value="FATAL" />
<param name="LevelMin" value="ERROR" />
</filter>
<param name="MaximumFileSize" value="10MB" />
<param name="MaxSizeRollBackups" value="10" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%thread] [%-5level] %logger %file(%line) %class %method - %message%n" />
</layout>
</appender>
<!-- Debug Log/ Rolling File -->
<appender name="DebugLogDailyAppender" type="log4net.Appender.RollingFileAppender">
<!-- Daily File -->
<param name="File" value="${APPDATA}\\Rohinomiya\\SampleLog4Net\\Logs\\Trace_" />
<param name="DatePattern" value='yyyyMMdd".log"' />
<param name="RollingStyle" value="date" />
<param name="StaticLogFileName" value="false" />
<param name="AppendToFile" value="true" />
<filter type="log4net.Filter.LevelRangeFilter">
<!-- <param name="LevelMax" value="FATAL" /> -->
<param name="LevelMin" value="TRACE" />
</filter>
<param name="MaximumFileSize" value="10MB" />
<param name="MaxSizeRollBackups" value="10" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date [%thread] [%-5level] %logger %file(%line) %class %method - %message%n" />
</layout>
</appender>
<root>
<!-- record level -->
<level value="TRACE" />
<!-- use Appender -->
<appender-ref ref="InfoLogDailyAppender" />
<appender-ref ref="ErrorLogDailyAppender" />
<appender-ref ref="DebugLogDailyAppender" />
</root>
</log4net>
</configuration>
]]>
</File>
</Files>
<AdditionalOptions/>
</Template>
そうしたら、新規ファイル追加メニューに表示されるようになりました!