我正在尝试将日志消息发送到我的 gmail 帐户,但它一直无法正常工作。我试过更改端口和更改阈值,但它不起作用。当我尝试在文件中写入日志时一切正常,所以我认为问题出在 log4net.config 文件中。
我的 log4net 配置文件包含:
<log4net>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="mymail@gmail.com" />
<from value="mysendermail@gmail.com" />
<subject value="Crash log" />
<smtpHost value="smtp.gmail.com" />
<authentication value="Basic" />
<port value="465" />
<username value="myusername" />
<password value="mypass" />
<bufferSize value="1" />
<EnableSsl value="true"/>
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="DEBUG"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d{hh:mm:ss} %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="SmtpAppender"/>
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
在我的 Startup.cs 文件中,我有:
var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
Run Code Online (Sandbox Code Playgroud)
我的示例代码是:
public class HomeController …
Run Code Online (Sandbox Code Playgroud) 我有抽象类,它是:
public abstract class Ingredient
{
private string name;
private decimal price;
public Ingredient(string name, decimal price)
{
this.name = name;
this.price = price;
}
public string Name
{
get
{
return this.name;
}
}
protected decimal Price
{
get
{
return this.price;
}
}
protected void ChangePrice(decimal newPrice)
{
Console.WriteLine(string.Format("The price changed from {0} to {1} for engridient {2}", this.price, newPrice,this.name));
this.price = newPrice;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有很多成分继承成分:
Tomato:Ingredient {//implementation}
Cheese:Ingredient {//implementation}
Mushrooms:Ingredient {//implementation}
Onion:Ingredient {//implementation}
Run Code Online (Sandbox Code Playgroud)
但我想我的成分,有一些类型的测量可以decimal Quantity
或者 …
我能找到非二叉树深度吗?每个节点可以有多个子节点。我们不知道最大节点数是多少。
public class Node
{
private List<Node> nodes;
private string nodeName;
public Node(string nodeName)
{
nodes = new List<Node>();
this.nodeName = nodeName;
}
public List<Node> Nodes
{
get { return this.nodes; }
set { this.nodes = value; }
}
protected string NodeName
{
get { return this.nodeName; }
}
}
Run Code Online (Sandbox Code Playgroud)