Enabled rolling file logging.

This commit is contained in:
kay.one 2012-01-22 18:24:16 -08:00
parent 5e3e071692
commit d1e3298da1
17 changed files with 817 additions and 185 deletions

696
Log4ViewConfig.l4v Normal file
View File

@ -0,0 +1,696 @@
<Config xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:b="http://schemas.datacontract.org/2004/07/System.Drawing" xmlns:d="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Db" xmlns:f="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Receiver.File" xmlns:l="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Level" xmlns:m="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Receiver.Msg" xmlns:n="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Receiver.Net" xmlns:t="http://schemas.datacontract.org/2004/07/Prosa.Log4View.LoggerTree" xmlns:u="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Utils" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" xmlns="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Configuration">
<Id>
<u:Value>1</u:Value>
</Id>
<DefaultLogLevel z:Id="2" i:type="LogLevelSurrogated">
<LevelName z:Id="3">ALL</LevelName>
</DefaultLogLevel>
<ShowCodeDetails>false</ShowCodeDetails>
<ShowMessageDetails>true</ShowMessageDetails>
<ShowMultiField>true</ShowMultiField>
<ShowOutputOnDebug>true</ShowOutputOnDebug>
<ShowProcessDetails>false</ShowProcessDetails>
<ToolTipLogLevel z:Id="4" i:type="LogLevelSurrogated">
<LevelName z:Id="5">OFF</LevelName>
</ToolTipLogLevel>
<Version>15</Version>
<_charts z:Id="6" z:Size="0" />
<_columns z:Id="7" z:Size="28">
<ColumnConfig z:Id="8">
<Id>
<u:Value>46</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="9">Id</FieldName>
<Name z:Ref="9" i:nil="true" />
<Position>-1</Position>
<Width>45</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="10">
<Id>
<u:Value>47</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="11">OriginalTime</FieldName>
<Name z:Ref="11" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="12">
<Id>
<u:Value>48</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="13">Time</FieldName>
<Name z:Ref="13" i:nil="true" />
<Position>1</Position>
<Width>80</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="14">
<Id>
<u:Value>49</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="15">LocalTime</FieldName>
<Name z:Ref="15" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="16">
<Id>
<u:Value>50</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="17">UtcTime</FieldName>
<Name z:Ref="17" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="18">
<Id>
<u:Value>51</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="19">Key</FieldName>
<Name z:Ref="19" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="20">
<Id>
<u:Value>52</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="21">Level</FieldName>
<Name z:Ref="21" i:nil="true" />
<Position>-1</Position>
<Width>85</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="22">
<Id>
<u:Value>53</u:Value>
</Id>
<ClipMode>ClipMiddle</ClipMode>
<FieldName z:Id="23">Logger</FieldName>
<Name z:Ref="23" i:nil="true" />
<Position>2</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="24">
<Id>
<u:Value>54</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="25">Source</FieldName>
<Name z:Ref="25" i:nil="true" />
<Position>-1</Position>
<Width>90</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="26">
<Id>
<u:Value>55</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="27">Message</FieldName>
<Name z:Ref="27" i:nil="true" />
<Position>3</Position>
<Width>320</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="28">
<Id>
<u:Value>56</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="29">Thread</FieldName>
<Name z:Ref="29" i:nil="true" />
<Position>-1</Position>
<Width>95</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="30">
<Id>
<u:Value>57</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="31">Host</FieldName>
<Name z:Ref="31" i:nil="true" />
<Position>-1</Position>
<Width>90</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="32">
<Id>
<u:Value>58</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="33">Exception</FieldName>
<Name z:Ref="33" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="34">
<Id>
<u:Value>59</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="35">Domain</FieldName>
<Name z:Ref="35" i:nil="true" />
<Position>-1</Position>
<Width>90</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="36">
<Id>
<u:Value>60</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="37">Identity</FieldName>
<Name z:Ref="37" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="38">
<Id>
<u:Value>61</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="39">User</FieldName>
<Name z:Ref="39" i:nil="true" />
<Position>-1</Position>
<Width>90</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="40">
<Id>
<u:Value>62</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="41">Class</FieldName>
<Name z:Ref="41" i:nil="true" />
<Position>-1</Position>
<Width>90</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="42">
<Id>
<u:Value>63</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="43">Method</FieldName>
<Name z:Ref="43" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="44">
<Id>
<u:Value>64</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="45">File</FieldName>
<Name z:Ref="45" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="46">
<Id>
<u:Value>65</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="47">Line</FieldName>
<Name z:Ref="47" i:nil="true" />
<Position>-1</Position>
<Width>45</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="48">
<Id>
<u:Value>66</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="49">NDC</FieldName>
<Name z:Ref="49" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="50">
<Id>
<u:Value>67</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="51">MDC</FieldName>
<Name z:Ref="51" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="52">
<Id>
<u:Value>68</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="53">Comment</FieldName>
<Name z:Ref="53" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="54">
<Id>
<u:Value>69</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="55">StackTrace</FieldName>
<Name z:Ref="55" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="56">
<Id>
<u:Value>70</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="57">ProcessId</FieldName>
<Name z:Ref="57" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="58">
<Id>
<u:Value>71</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="59">ThreadId</FieldName>
<Name z:Ref="59" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="60">
<Id>
<u:Value>72</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="61">Date</FieldName>
<Name z:Ref="61" i:nil="true" />
<Position>-1</Position>
<Width>70</Width>
<WindowId>16</WindowId>
</ColumnConfig>
<ColumnConfig z:Id="62">
<Id>
<u:Value>73</u:Value>
</Id>
<ClipMode>ClipRight</ClipMode>
<FieldName z:Id="63">CallStack</FieldName>
<Name z:Ref="63" i:nil="true" />
<Position>-1</Position>
<Width>120</Width>
<WindowId>16</WindowId>
</ColumnConfig>
</_columns>
<_filters z:Id="64" z:Size="0" />
<_formats z:Id="65" z:Size="1">
<FormatConfig z:Id="66">
<Id>
<u:Value>0</u:Value>
</Id>
<ConditionFieldName z:Id="67">Message</ConditionFieldName>
<ConditionRelation z:Id="68"></ConditionRelation>
<ConditionText z:Ref="68" i:nil="true" />
<Formats z:Id="69" z:Size="12">
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="70" i:type="LogLevelSurrogated">
<LevelName z:Id="71">VERBOSE</LevelName>
</a:Key>
<a:Value z:Id="72">
<Id>
<u:Value>2</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="73">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4290032820</b:value>
</Forecolor>
<Loglevel z:Ref="70" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="74" i:type="LogLevelSurrogated">
<LevelName z:Id="75">TRACE</LevelName>
</a:Key>
<a:Value z:Id="76">
<Id>
<u:Value>3</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="77">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4288716960</b:value>
</Forecolor>
<Loglevel z:Ref="74" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="78" i:type="LogLevelSurrogated">
<LevelName z:Id="79">DEBUG</LevelName>
</a:Key>
<a:Value z:Id="80">
<Id>
<u:Value>4</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="81">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4286743170</b:value>
</Forecolor>
<Loglevel z:Ref="78" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="82" i:type="LogLevelSurrogated">
<LevelName z:Id="83">INFO</LevelName>
</a:Key>
<a:Value z:Id="84">
<Id>
<u:Value>5</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="85">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4278190080</b:value>
</Forecolor>
<Loglevel z:Ref="82" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="86" i:type="LogLevelSurrogated">
<LevelName z:Id="87">NOTICE</LevelName>
</a:Key>
<a:Value z:Id="88">
<Id>
<u:Value>6</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="89">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4281957177</b:value>
</Forecolor>
<Loglevel z:Ref="86" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="90" i:type="LogLevelSurrogated">
<LevelName z:Id="91">WARN</LevelName>
</a:Key>
<a:Value z:Id="92">
<Id>
<u:Value>7</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="93">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4294934528</b:value>
</Forecolor>
<Loglevel z:Ref="90" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="94" i:type="LogLevelSurrogated">
<LevelName z:Id="95">ERROR</LevelName>
</a:Key>
<a:Value z:Id="96">
<Id>
<u:Value>8</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="97">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4294901760</b:value>
</Forecolor>
<Loglevel z:Ref="94" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="98" i:type="LogLevelSurrogated">
<LevelName z:Id="99">SEVERE</LevelName>
</a:Key>
<a:Value z:Id="100">
<Id>
<u:Value>9</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="101">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4293067295</b:value>
</Forecolor>
<Loglevel z:Ref="98" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="102" i:type="LogLevelSurrogated">
<LevelName z:Id="103">CRITICAL</LevelName>
</a:Key>
<a:Value z:Id="104">
<Id>
<u:Value>10</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="105">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4289400377</b:value>
</Forecolor>
<Loglevel z:Ref="102" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="106" i:type="LogLevelSurrogated">
<LevelName z:Id="107">ALERT</LevelName>
</a:Key>
<a:Value z:Id="108">
<Id>
<u:Value>11</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="109">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4294902015</b:value>
</Forecolor>
<Loglevel z:Ref="106" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="110" i:type="LogLevelSurrogated">
<LevelName z:Id="111">FATAL</LevelName>
</a:Key>
<a:Value z:Id="112">
<Id>
<u:Value>12</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="113">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4287309977</b:value>
</Forecolor>
<Loglevel z:Ref="110" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
<a:Key z:Id="114" i:type="LogLevelSurrogated">
<LevelName z:Id="115">EMERGENCY</LevelName>
</a:Key>
<a:Value z:Id="116">
<Id>
<u:Value>13</u:Value>
</Id>
<Backcolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>0</b:state>
<b:value>0</b:value>
</Backcolor>
<FontName z:Id="117">Tahoma</FontName>
<Forecolor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4285932413</b:value>
</Forecolor>
<Loglevel z:Ref="114" i:nil="true" />
<Size>8.25</Size>
<Style>Regular</Style>
</a:Value>
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
</Formats>
<IgnoreCase>false</IgnoreCase>
<Name z:Id="118">Default Format Settings</Name>
</FormatConfig>
</_formats>
<_logLevels z:Id="119" z:Size="0" />
<_loggers z:Id="120" z:Size="1">
<LoggerConfig z:Id="121">
<Id>
<u:Value>45</u:Value>
</Id>
<LogLevel z:Ref="2" i:nil="true" />
<LoggerPath z:Ref="68" i:nil="true" />
<ReceiverId>14</ReceiverId>
</LoggerConfig>
</_loggers>
<_receivers z:Id="122" z:Size="1">
<ReceiverConfig z:Id="123" i:type="n:UdpReceiverConfig">
<Id>
<u:Value>14</u:Value>
</Id>
<BackColor>
<b:knownColor>0</b:knownColor>
<b:name i:nil="true" />
<b:state>2</b:state>
<b:value>4293654015</b:value>
</BackColor>
<BufferSize>500000</BufferSize>
<Encoding z:Id="124">Windows-1252</Encoding>
<LevelFilter z:Ref="2" i:nil="true" />
<LoggingFrameworkId z:Id="125">Log4net</LoggingFrameworkId>
<Name z:Id="126">NzbDrone Reciver</Name>
<ParserType>XML</ParserType>
<ReadAdjacentMessages>0</ReadAdjacentMessages>
<ReadFrom>0001-01-01T00:00:00</ReadFrom>
<ReadUntil>0001-01-01T00:00:00</ReadUntil>
<SourceId>0</SourceId>
<TimeOffset>0</TimeOffset>
<TimeZone z:Id="127">Pacific Standard Time</TimeZone>
<UseFilter>false</UseFilter>
<Window>16</Window>
<n:HostName z:Id="128">localhost</n:HostName>
<n:Port>20480</n:Port>
</ReceiverConfig>
</_receivers>
<_sources z:Id="129" z:Size="0" />
</Config>

View File

@ -1,149 +0,0 @@
<Configuration>
<CodeStyleSettings>
<ExternalPath IsNull="False">
</ExternalPath>
<Sharing>SOLUTION</Sharing>
<CSS>
<FormatSettings />
<Naming2 />
</CSS>
<CSharp>
<FormatSettings>
<ALIGN_FIRST_ARG_BY_PAREN>True</ALIGN_FIRST_ARG_BY_PAREN>
<ALIGN_MULTILINE_FOR_STMT>False</ALIGN_MULTILINE_FOR_STMT>
<CONTINUOUS_INDENT_MULTIPLIER>2</CONTINUOUS_INDENT_MULTIPLIER>
<FORCE_ATTRIBUTE_STYLE>SEPARATE</FORCE_ATTRIBUTE_STYLE>
<INDENT_NESTED_FIXED_STMT>True</INDENT_NESTED_FIXED_STMT>
<INDENT_NESTED_USINGS_STMT>True</INDENT_NESTED_USINGS_STMT>
<LINE_FEED_AT_FILE_END>True</LINE_FEED_AT_FILE_END>
<MODIFIERS_ORDER IsNull="False">
<Item>public</Item>
<Item>protected</Item>
<Item>internal</Item>
<Item>private</Item>
<Item>new</Item>
<Item>abstract</Item>
<Item>virtual</Item>
<Item>override</Item>
<Item>sealed</Item>
<Item>static</Item>
<Item>readonly</Item>
<Item>extern</Item>
<Item>unsafe</Item>
<Item>volatile</Item>
</MODIFIERS_ORDER>
<SPACE_AFTER_TYPECAST_PARENTHESES>False</SPACE_AFTER_TYPECAST_PARENTHESES>
<SPACE_AROUND_ARROW_OP>True</SPACE_AROUND_ARROW_OP>
<SPACE_AROUND_MULTIPLICATIVE_OP>True</SPACE_AROUND_MULTIPLICATIVE_OP>
<SPACE_BEFORE_CATCH_PARENTHESES>False</SPACE_BEFORE_CATCH_PARENTHESES>
<SPACE_BEFORE_FIXED_PARENTHESES>False</SPACE_BEFORE_FIXED_PARENTHESES>
<SPACE_BEFORE_FOR_PARENTHESES>False</SPACE_BEFORE_FOR_PARENTHESES>
<SPACE_BEFORE_FOR_SEMICOLON>True</SPACE_BEFORE_FOR_SEMICOLON>
<SPACE_BEFORE_FOREACH_PARENTHESES>False</SPACE_BEFORE_FOREACH_PARENTHESES>
<SPACE_BEFORE_IF_PARENTHESES>False</SPACE_BEFORE_IF_PARENTHESES>
<SPACE_BEFORE_LOCK_PARENTHESES>False</SPACE_BEFORE_LOCK_PARENTHESES>
<SPACE_BEFORE_SIZEOF_PARENTHESES>False</SPACE_BEFORE_SIZEOF_PARENTHESES>
<SPACE_BEFORE_SWITCH_PARENTHESES>False</SPACE_BEFORE_SWITCH_PARENTHESES>
<SPACE_BEFORE_TYPE_PARAMETER_ANGLE>True</SPACE_BEFORE_TYPE_PARAMETER_ANGLE>
<SPACE_BEFORE_TYPE_PARAMETER_CONSTRAINT_COLON>False</SPACE_BEFORE_TYPE_PARAMETER_CONSTRAINT_COLON>
<SPACE_BEFORE_TYPEOF_PARENTHESES>False</SPACE_BEFORE_TYPEOF_PARENTHESES>
<SPACE_BEFORE_USING_PARENTHESES>False</SPACE_BEFORE_USING_PARENTHESES>
<SPACE_BEFORE_WHILE_PARENTHESES>False</SPACE_BEFORE_WHILE_PARENTHESES>
<STICK_COMMENT>False</STICK_COMMENT>
</FormatSettings>
<UsingsSettings>
<MandatoryImports IsNull="False">
<Item>System.Linq</Item>
</MandatoryImports>
</UsingsSettings>
<Naming2>
<EventHandlerPatternLong>$object$_On$event$</EventHandlerPatternLong>
<EventHandlerPatternShort>$event$Handler</EventHandlerPatternShort>
</Naming2>
</CSharp>
<HTML>
<FormatSettings />
</HTML>
<JavaScript>
<FormatSettings />
<Naming2>
<UserRule Name="JS_LOCAL_VARIABLE" Inspect="True" Prefix="" Suffix="" Style="aaBb" />
<UserRule Name="JS_FUNCTION" Inspect="True" Prefix="" Suffix="" Style="aaBb" />
<UserRule Name="JS_PARAMETER" Inspect="True" Prefix="" Suffix="" Style="aaBb" />
<UserRule Name="JS_LABEL" Inspect="True" Prefix="" Suffix="" Style="aaBb" />
<UserRule Name="JS_GLOBAL_VARIABLE" Inspect="True" Prefix="" Suffix="" Style="AaBb" />
<UserRule Name="JS_OBJECT_PROPERTY_OF_FUNCTION" Inspect="True" Prefix="" Suffix="" Style="aaBb" />
<UserRule Name="JS_CONSTRUCTOR" Inspect="True" Prefix="" Suffix="" Style="AaBb" />
</Naming2>
</JavaScript>
<VB>
<FormatSettings />
<ImportsSettings />
<Naming2>
<EventHandlerPatternLong>$object$_On$event$</EventHandlerPatternLong>
<EventHandlerPatternShort>$event$Handler</EventHandlerPatternShort>
</Naming2>
</VB>
<Web>
<Naming2 />
</Web>
<XML>
<FormatSettings />
</XML>
<Xaml>
<Naming2 />
</Xaml>
<GenerateMemberBody />
<Naming2>
<EventHandlerPatternLong>$object$_On$event$</EventHandlerPatternLong>
<EventHandlerPatternShort>$event$Handler</EventHandlerPatternShort>
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="PrivateStaticReadonly" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="TypesAndNamespaces" />
<PredefinedRule Inspect="True" Prefix="I" Suffix="" Style="AaBb" ElementKind="Interfaces" />
<PredefinedRule Inspect="True" Prefix="T" Suffix="" Style="AaBb" ElementKind="TypeParameters" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="MethodPropertyEvent" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
<PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PublicFields" />
<PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateInstanceFields" />
<PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="Constants" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AA_BB" ElementKind="PrivateConstants" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="StaticReadonly" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
<Abbreviation Text="IIS" />
</Naming2>
</CodeStyleSettings>
<Daemon.SolutionSettings>
<SkipFilesAndFolders>
<Item>43BD3BBD-1531-4D8F-9C08-E1CD544AB2CD/d:Content/d:2011.3.1115</Item>
<Item>43BD3BBD-1531-4D8F-9C08-E1CD544AB2CD/d:Content/d:jQueryUI</Item>
</SkipFilesAndFolders>
</Daemon.SolutionSettings>
<SharedSolutionTemplateManager>
<LiveTemplates>
<Template uid="3ec01bf0-ad83-4b4c-a0b2-381f28e3c369" shortcut="Test" description="Test Method" text="[NUnit.Framework.Test]&#xD;&#xA;[NUnit.Framework.Description(&quot;$TEST_NAME$&quot;)]&#xD;&#xA;public void $TEST_METHOD_NAME$() &#xD;&#xA;{&#xD;&#xA; //Act&#xD;&#xA;&#xD;&#xA; //Assert&#xD;&#xA;&#xD;&#xA;}" reformat="True" shortenQualifiedReferences="True">
<Scopes>
<Scope type="InCSharpTypeMember" minimumLanguageVersion="2.0" />
</Scopes>
<Categories />
<Variables>
<Variable name="TEST_NAME" expression="" initialRange="0" />
<Variable name="TEST_METHOD_NAME" expression="spacestounderstrokes(TEST_NAME)" initialRange="-1" />
</Variables>
<CustomProperties />
</Template>
<Template uid="26915659-690b-46fa-a776-0d5995a33936" shortcut="Logger" description="" text="private static readonly Logger Logger = LogManager.GetCurrentClassLogger();" reformat="True" shortenQualifiedReferences="True">
<Scopes>
<Scope type="Everywhere" />
<Scope type="InCSharpTypeMember" minimumLanguageVersion="2.0" />
</Scopes>
<Categories />
<Variables />
<CustomProperties />
</Template>
</LiveTemplates>
</SharedSolutionTemplateManager>
</Configuration>

View File

@ -8,8 +8,8 @@ namespace NzbDrone.Common
{ {
public class IISProvider public class IISProvider
{ {
private static readonly Logger IISLogger = LogManager.GetLogger("Host.IISExpress"); private static readonly Logger IISLogger = LogManager.GetLogger("IISExpress");
private static readonly Logger Logger = LogManager.GetLogger("Host.IISProvider"); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly ConfigFileProvider _configFileProvider; private readonly ConfigFileProvider _configFileProvider;
private readonly ProcessProvider _processProvider; private readonly ProcessProvider _processProvider;
private readonly EnviromentProvider _enviromentProvider; private readonly EnviromentProvider _enviromentProvider;

View File

@ -76,17 +76,40 @@ namespace NzbDrone.Common
} }
public static void RegisterFileLogger(string fileName) private static FileTarget GetBaseTarget()
{ {
var fileTarget = new FileTarget(); var fileTarget = new FileTarget();
fileTarget.AutoFlush = true; fileTarget.AutoFlush = true;
fileTarget.ConcurrentWrites = false; fileTarget.ConcurrentWrites = true;
fileTarget.FileName = fileName;
fileTarget.KeepFileOpen = false; fileTarget.KeepFileOpen = false;
fileTarget.Layout = "${longdate} - ${logger}: ${message} ${exception:format=ToString}"; fileTarget.ConcurrentWriteAttemptDelay = 50;
fileTarget.ConcurrentWriteAttempts = 200;
LogManager.Configuration.AddTarget(fileTarget.GetType().Name, fileTarget); fileTarget.Layout = @"${date:format=yy-M-d HH\:mm\:ss.f}|${replace:searchFor=NzbDrone.:replaceWith=:inner=${logger}}|${message}|${exception:format=ToString}";
LogManager.Configuration.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, fileTarget));
return fileTarget;
}
public static void RegisterFileLogger(string fileName, LogLevel level)
{
var fileTarget = GetBaseTarget();
fileTarget.FileName = fileName;
LogManager.Configuration.AddTarget(Guid.NewGuid().ToString(), fileTarget);
LogManager.Configuration.LoggingRules.Add(new LoggingRule("*", level, fileTarget));
}
public static void RegisterRollingFileLogger(string fileName, LogLevel level)
{
var fileTarget = GetBaseTarget();
fileTarget.FileName = fileName;
fileTarget.ArchiveAboveSize = 200000; //500K
fileTarget.MaxArchiveFiles = 1;
fileTarget.EnableFileDelete = true;
fileTarget.ArchiveNumbering = ArchiveNumberingMode.Rolling;
LogManager.Configuration.AddTarget(Guid.NewGuid().ToString(), fileTarget);
LogManager.Configuration.LoggingRules.Add(new LoggingRule("*", level, fileTarget));
} }
public static void RegisterExceptioneer() public static void RegisterExceptioneer()

View File

@ -139,5 +139,14 @@ namespace NzbDrone.Common
{ {
return Path.Combine(enviromentProvider.GetUpdateSandboxFolder(), UPDATE_LOG_FOLDER_NAME); return Path.Combine(enviromentProvider.GetUpdateSandboxFolder(), UPDATE_LOG_FOLDER_NAME);
} }
public static string GetLogFileName(this EnviromentProvider enviromentProvider)
{
return Path.Combine(enviromentProvider.ApplicationPath, "nzbdrone.log.txt");
}
public static string GetArchivedLogFileName(this EnviromentProvider enviromentProvider)
{
return Path.Combine(enviromentProvider.ApplicationPath, "nzbdrone.log.0.txt");
}
} }
} }

View File

@ -8,7 +8,7 @@ namespace NzbDrone.Common
{ {
public class ProcessProvider public class ProcessProvider
{ {
private static readonly Logger Logger = LogManager.GetLogger("Host.ProcessProvider"); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public static readonly string NzbDroneProccessName = "NzbDrone"; public static readonly string NzbDroneProccessName = "NzbDrone";

View File

@ -1,19 +1,16 @@
using System; using System;
using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Security.Principal; using System.Security.Principal;
using System.Text;
using NLog; using NLog;
using NetFwTypeLib; using NetFwTypeLib;
using Ninject; using Ninject;
using NzbDrone.Common.Model;
namespace NzbDrone.Common namespace NzbDrone.Common
{ {
public class SecurityProvider public class SecurityProvider
{ {
private static readonly Logger Logger = LogManager.GetLogger("Host.SecurityProvider"); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private readonly ConfigFileProvider _configFileProvider; private readonly ConfigFileProvider _configFileProvider;
private readonly EnviromentProvider _enviromentProvider; private readonly EnviromentProvider _enviromentProvider;

View File

@ -32,10 +32,14 @@ namespace NzbDrone.Core.Test.ProviderTests.LogProviderTests
dbContext = Connection.GetLogDbContext(TestDbHelper.ConnectionString); dbContext = Connection.GetLogDbContext(TestDbHelper.ConnectionString);
Mocker.SetConstant(dbContext);
new DatabaseTarget(Db).Register(); new DatabaseTarget(Db).Register();
Logger = LogManager.GetCurrentClassLogger(); Logger = LogManager.GetCurrentClassLogger();
UniqueMessage = "Unique message: " + Guid.NewGuid().ToString(); UniqueMessage = "Unique message: " + Guid.NewGuid().ToString();
} }
[Test] [Test]
@ -76,14 +80,15 @@ namespace NzbDrone.Core.Test.ProviderTests.LogProviderTests
[Test] [Test]
public void clearLog() public void clearLog()
{ {
WithTempAsAppPath();
//Act //Act
for (int i = 0; i < 10; i++) for (int i = 0; i < 10; i++)
{ {
Logger.Info(UniqueMessage); Logger.Info(UniqueMessage);
} }
//Assert var provider = Mocker.Resolve<LogProvider>();
var provider = new LogProvider(Db, dbContext);
provider.GetAllLogs().Should().HaveCount(10); provider.GetAllLogs().Should().HaveCount(10);
provider.DeleteAll(); provider.DeleteAll();
provider.GetAllLogs().Should().HaveCount(1); provider.GetAllLogs().Should().HaveCount(1);

View File

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using NLog; using NLog;
using NzbDrone.Common;
using PetaPoco; using PetaPoco;
namespace NzbDrone.Core.Instrumentation namespace NzbDrone.Core.Instrumentation
@ -10,14 +11,18 @@ namespace NzbDrone.Core.Instrumentation
{ {
private readonly IDatabase _database; private readonly IDatabase _database;
private readonly LogDbContext _logDbContext; private readonly LogDbContext _logDbContext;
private readonly DiskProvider _diskProvider;
private readonly EnviromentProvider _enviromentProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public LogProvider(IDatabase database, LogDbContext logDbContext) public LogProvider(IDatabase database, LogDbContext logDbContext, DiskProvider diskProvider, EnviromentProvider enviromentProvider)
{ {
_database = database; _database = database;
_logDbContext = logDbContext; _logDbContext = logDbContext;
_diskProvider = diskProvider;
_enviromentProvider = enviromentProvider;
} }
public IQueryable<Log> GetAllLogs() public IQueryable<Log> GetAllLogs()
@ -47,6 +52,8 @@ namespace NzbDrone.Core.Instrumentation
public void DeleteAll() public void DeleteAll()
{ {
_database.Delete<Log>(""); _database.Delete<Log>("");
_diskProvider.DeleteFile(_enviromentProvider.GetLogFileName());
_diskProvider.DeleteFile(_enviromentProvider.GetArchivedLogFileName());
Logger.Info("Cleared Log History"); Logger.Info("Cleared Log History");
} }

View File

@ -68,7 +68,7 @@ namespace NzbDrone.Update
LogConfiguration.RegisterUdpLogger(); LogConfiguration.RegisterUdpLogger();
var logPath = Path.Combine(new EnviromentProvider().GetSandboxLogFolder(), DateTime.Now.ToString("yyyy.MM.dd-H-mm") + ".txt"); var logPath = Path.Combine(new EnviromentProvider().GetSandboxLogFolder(), DateTime.Now.ToString("yyyy.MM.dd-H-mm") + ".txt");
LogConfiguration.RegisterFileLogger(logPath); LogConfiguration.RegisterFileLogger(logPath, LogLevel.Info);
LogConfiguration.Reload(); LogConfiguration.Reload();
} }

View File

@ -0,0 +1,28 @@
using System.IO;
using System.Linq;
using NLog;
using NLog.Config;
using NzbDrone.Common;
[assembly: WebActivator.PreApplicationStartMethod(typeof(NzbDrone.Web.App_Start.Logging), "PreStart")]
namespace NzbDrone.Web.App_Start
{
public static class Logging
{
public static void PreStart()
{
var enviromentProvider = new EnviromentProvider();
LogManager.Configuration = new XmlLoggingConfiguration(enviromentProvider.GetNlogConfigPath(), false);
LogConfiguration.RegisterUdpLogger();
LogConfiguration.RegisterExceptioneer();
LogConfiguration.RegisterConsoleLogger(LogLevel.Info, "NzbDrone.Web.MvcApplication");
LogConfiguration.RegisterConsoleLogger(LogLevel.Info, "NzbDrone.Core.CentralDispatch");
LogConfiguration.RegisterRollingFileLogger(enviromentProvider.GetLogFileName(), LogLevel.Trace);
}
}
}

View File

@ -1,4 +1,7 @@
using System.Web.Mvc; using System;
using System.Text;
using System.Web.Mvc;
using NzbDrone.Common;
using NzbDrone.Core.Instrumentation; using NzbDrone.Core.Instrumentation;
using NzbDrone.Web.Models; using NzbDrone.Web.Models;
using Telerik.Web.Mvc; using Telerik.Web.Mvc;
@ -8,10 +11,14 @@ namespace NzbDrone.Web.Controllers
public class LogController : Controller public class LogController : Controller
{ {
private readonly LogProvider _logProvider; private readonly LogProvider _logProvider;
private readonly EnviromentProvider _enviromentProvider;
private readonly DiskProvider _diskProvider;
public LogController(LogProvider logProvider) public LogController(LogProvider logProvider, EnviromentProvider enviromentProvider, DiskProvider diskProvider)
{ {
_logProvider = logProvider; _logProvider = logProvider;
_enviromentProvider = enviromentProvider;
_diskProvider = diskProvider;
} }
public ActionResult Index() public ActionResult Index()
@ -19,6 +26,20 @@ namespace NzbDrone.Web.Controllers
return View(); return View();
} }
public FileContentResult File()
{
string log = string.Empty;
if (_diskProvider.FileExists(_enviromentProvider.GetArchivedLogFileName()))
{
log = _diskProvider.ReadAllText(_enviromentProvider.GetArchivedLogFileName());
}
log += _diskProvider.ReadAllText(_enviromentProvider.GetLogFileName());
return new FileContentResult(Encoding.ASCII.GetBytes(log), "text/plain");
}
public JsonResult Clear() public JsonResult Clear()
{ {
_logProvider.DeleteAll(); _logProvider.DeleteAll();

View File

@ -50,17 +50,8 @@ namespace NzbDrone.Web
protected override IKernel CreateKernel() protected override IKernel CreateKernel()
{ {
LogManager.Configuration = new XmlLoggingConfiguration(new EnviromentProvider().GetNlogConfigPath(), false);
LogConfiguration.RegisterUdpLogger();
LogConfiguration.RegisterExceptioneer();
LogConfiguration.RegisterConsoleLogger(LogLevel.Info, "NzbDrone.Web.MvcApplication");
LogConfiguration.RegisterConsoleLogger(LogLevel.Info, "NzbDrone.Core.CentralDispatch");
var dispatch = new CentralDispatch();
Logger.Info("NzbDrone Starting up."); Logger.Info("NzbDrone Starting up.");
var dispatch = new CentralDispatch();
dispatch.DedicateToHost(); dispatch.DedicateToHost();
dispatch.Kernel.Load(Assembly.GetExecutingAssembly()); dispatch.Kernel.Load(Assembly.GetExecutingAssembly());

View File

@ -198,6 +198,7 @@
<DependentUpon>UploadLocalization.en-US.resx</DependentUpon> <DependentUpon>UploadLocalization.en-US.resx</DependentUpon>
</Compile> </Compile>
<Compile Include="App_Start\EntityFramework.SqlServerCompact.cs" /> <Compile Include="App_Start\EntityFramework.SqlServerCompact.cs" />
<Compile Include="App_Start\Logging.cs" />
<Compile Include="App_Start\MiniProfiler.cs" /> <Compile Include="App_Start\MiniProfiler.cs" />
<Compile Include="Filters\JsonErrorFilter.cs" /> <Compile Include="Filters\JsonErrorFilter.cs" />
<Compile Include="Controllers\CommandController.cs" /> <Compile Include="Controllers\CommandController.cs" />

View File

@ -1,4 +1,5 @@
@using NzbDrone.Core.Instrumentation @using NzbDrone.Core.Instrumentation
@using NzbDrone.Web.Helpers
@model IEnumerable<NzbDrone.Core.Instrumentation.Log> @model IEnumerable<NzbDrone.Core.Instrumentation.Log>
@section Scripts{ @section Scripts{
<script type="text/javascript"> <script type="text/javascript">
@ -24,9 +25,8 @@
@section ActionMenu{ @section ActionMenu{
<ul class="sub-menu"> <ul class="sub-menu">
<li>@Ajax.ActionLink("Clear Logs", "Clear", "Log", new AjaxOptions { OnSuccess = "reloadGrid" })</li> <li>@Ajax.ActionLink("Clear Logs", "Clear", "Log", new AjaxOptions { OnSuccess = "reloadGrid" })</li>
<li>@Html.ActionLink("File", "File", "Log")</li>
</ul> </ul>
<div style="margin-bottom: 10px">
</div>
} }
<div class="infoBox"> <div class="infoBox">
Log entries older than 30 days are automatically deleted.</div> Log entries older than 30 days are automatically deleted.</div>

View File

@ -1,4 +1,5 @@
using NLog; using System.IO;
using NLog;
using Ninject; using Ninject;
using NzbDrone.Common; using NzbDrone.Common;
using NzbDrone.Providers; using NzbDrone.Providers;
@ -43,12 +44,14 @@ namespace NzbDrone
private static void InitilizeApp() private static void InitilizeApp()
{ {
LogConfiguration.RegisterFileLogger("nzbdrone.log"); var enviromentProvider = _kernel.Get<EnviromentProvider>();
LogConfiguration.RegisterRollingFileLogger(enviromentProvider.GetLogFileName(), LogLevel.Info);
LogConfiguration.RegisterConsoleLogger(LogLevel.Debug); LogConfiguration.RegisterConsoleLogger(LogLevel.Debug);
LogConfiguration.RegisterUdpLogger(); LogConfiguration.RegisterUdpLogger();
LogConfiguration.RegisterExceptioneer(); LogConfiguration.RegisterExceptioneer();
LogConfiguration.Reload(); LogConfiguration.Reload();
Logger.Info("Start-up Path:'{0}'", _kernel.Get<EnviromentProvider>().ApplicationPath); Logger.Info("Start-up Path:'{0}'", enviromentProvider.ApplicationPath);
} }
} }
} }

View File

@ -47,7 +47,7 @@ namespace NzbDrone.Providers
prioCheckTimer.Elapsed += EnsurePriority; prioCheckTimer.Elapsed += EnsurePriority;
prioCheckTimer.Enabled = true; prioCheckTimer.Enabled = true;
_pingTimer = new Timer(60000) { AutoReset = true }; _pingTimer = new Timer(120000) { AutoReset = true };
_pingTimer.Elapsed += (PingServer); _pingTimer.Elapsed += (PingServer);
_pingTimer.Start(); _pingTimer.Start();
} }