我目前在我的应用程序中使用log4net有多个日志文件.
我有一个顶级日志文件,其中包含每种类型的消息.我还有一个错误日志文件,其中只包含错误信息.我正在尝试配置它,以便特定的异常详细信息和堆栈跟踪仅出现在错误日志文件中.
我正在使用的电话是 Log.Error(myMessage, myException);
我的配置如下:
<configuration>
<log4net>
<root>
<level value="ALL"/>
<appender-ref ref="GeneralTextLog"/>
<appender-ref ref="ErrorTextLog"/>
</root>
<!-- The general appender rolls by date -->
<appender name="GeneralTextLog" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<level value="ALL"/>
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%type] %-5p %message%n"/>
</layout>
<rollingStyle value="Date"/>
<file value="C:/Logs/General_"/>
<datePattern value="yyyy_MM_dd'.log'" />
<appendToFile value="true"/>
<staticLogFileName value="false"/>
</appender>
<!-- The Error appender rolls by date -->
<appender name="ErrorTextLog" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN"/>
<levelMax value="FATAL"/>
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%type] %-5p %message%newline%exception"/>
</layout>
<rollingStyle value="Date"/> …Run Code Online (Sandbox Code Playgroud) 所以我在一个项目中使用Font Awesome,在测试中我遇到了IE8的问题.
在Windows IE9上,Chrome和Firefox正确显示字体(OS X上的Firefox,Chrome和Safari),但Windows上的IE8有一个问题,我得到一个方框代替字体.

我的代码是:
<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8" />
<title>Site title</title>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link href=".../css/css.css" rel="stylesheet" type="text/css">
<link href="../css/print.css" rel="stylesheet" type="text/css" media="print">
<link href="../apple-touch-icon.png" rel="apple-touch-icon-precomposed">
<link href="../css/jquery-ui-1.8.23.custom.css" rel="stylesheet" type="text/css">
<link href="../css/jquery-ui-overrider.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Lato|Michroma&subset=latin&v2" rel="stylesheet" type="text/css">
<link href="../css/prettify.css" …Run Code Online (Sandbox Code Playgroud) 我们使用html2canvas.js和html2canvas.svg.js(版本0.5.0 beta1)和highcharts.js将圆环图下载到pdf中.
这在Chrome中可以正常使用,但是在IE和Firefox中这不起作用.在IE中,图表呈现不正确,在Firefox中根本不呈现.
以下是Chrome,IE和Firefox下载的屏幕截图
我用来做html2canvas的代码如下:
html2canvas($("#container"), {
onrendered: function (canvas) {
var imgData = canvas.toDataURL(
'image/png');
var doc = new jsPDF('p', 'mm');
doc.addImage(imgData, 'PNG', 10, 10);
doc.save('sample-file.pdf');
}
});
Run Code Online (Sandbox Code Playgroud)
我创建了一个jsFiddle来演示这里的问题 - http://jsfiddle.net/jko0rs5g/3/
有谁知道可能导致这个问题的原因,以及我们如何解决它?
编辑
只是为了澄清为什么我们没有使用内置的Highcharts导出,这是为了我们在Highcarts中添加额外的html,例如图表上方或下方的附加信息,或者例如甜甜圈内的分数.我已经更新了jsfiddle以反映这一点.
我有一个自定义操作过滤器,OnActionExecuting根据某些条件,在其中,注销用户并将其重定向到站点的主页.重定向部分的(剥离后的)代码如下所示
filterContext.Controller.TempData.Add("key", "Message");
filterContext.Result = new RedirectResult("/");
Run Code Online (Sandbox Code Playgroud)
如上所述,我也在设置tempData消息.由于用户已注销,当他们点击主页时,该[Authorize]属性会将其重定向到登录GET页面.在登录视图中,我显示tempData中的任何消息.但是在这种情况下,tempData为空.
这与我的登录POST工作方式非常相似(如果无效,它会重定向到home,重定向到登录并显示在Login帖子中设置的tempData消息).这段代码如下所示
TempData.Add("key", errorMessage);
return Redirect("/"));
Run Code Online (Sandbox Code Playgroud)
我这样做的原因,而不是专门重定向到登录页面是因为这个代码分布在许多网站上,所以我们不知道登录GET url是什么.
有没有人知道为什么这适用于登录POST但不适用于ActionFilter Redirect?
编辑:
如果我在自定义操作过滤器中删除了注销调用,则仍然在Home操作中设置tempData - 但是这并不能解释为什么它适用于登录POST但不适用于操作过滤器?
.net ×1
asp.net-mvc ×1
c# ×1
css ×1
font-awesome ×1
highcharts ×1
html2canvas ×1
javascript ×1
log4net ×1
pdf ×1
svg ×1
tempdata ×1
webfonts ×1