我现在使用Log4net已经有一段时间了,这是一个了不起的日志框架,特别是在连接到Castle.Windsor时.然而...
我通常使用滚动文件appender,但这导致了太多的日志文件而不是我想要的,所以相反,对于我的最新项目,使用了基本的LogFileAppender,但问题是日志文件不断增长(看似永远) .
如何告诉appender不要超过固定大小(并开始删除旧日志并将新日志附加到文件中?
我目前的配置如下:
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file value="E:\Logs\iWater\Schedule-Dispatch-API.log"/>
<param name="AppendToFile" value="true"/>
<maximumFileSize value="2048KB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-16date{dd MMM HH:mm:ss} %-7level %-25.35logger{1} %message%newline"/>
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
看起来似乎没有遵守maximumFileSize属性.有解决方案吗
或者,如何将滚动文件appender配置为仅创建1个文件(永远)?
我目前有一个javascript文件'score.js',它使用jQuery.js,通过链接正确调用.score.js中的代码是:
function originalUpdateScore(answer,correct){
if (answer == correct)
{
$.post('updateScore.php');
}
window.location.reload(true);
}
Run Code Online (Sandbox Code Playgroud)
此函数调用'updateScore.php':
<?php
include("dbstuff.inc");
$con = mysqli_connect($host, $user, $passwd, $dbname)
or die ("Query died: connection");
$updateScore = "UPDATE `user` SET `tempScore`=`tempScore`+1
WHERE (user.Username='$_SESSION[logname]')";
mysqli_query($con, $updateScore);
?>
Run Code Online (Sandbox Code Playgroud)
但是,数据库未正确更新.如果我更换线路:
$updateScore = "UPDATE `user` SET `tempScore`=`tempScore`+1
WHERE (user.Username='$_SESSION[logname]')";
Run Code Online (Sandbox Code Playgroud)
有:
$updateScore = "UPDATE `user` SET `tempScore`=`tempScore`+1
WHERE (user.Username='123pf')";
Run Code Online (Sandbox Code Playgroud)
其中123pf是SESSION变量在调用javascript的php文件中包含的值,它正确更新.为什么使用会话变量不起作用?我在查询中调用错误了吗?
提前致谢.
我刚刚安装了resharper,它让我知道我在每个课程中都没有实际使用的命名空间.
这引出了我的问题 - 实际上是否存在使用声明留下这些未使用的开销?
它只是一个严密的代码问题,还是在我不需要时调用这些命名空间的性能?
我有一个项目,我正在使用log4net,它工作得很好,但我想知道我是否可以在调试和发布时覆盖日志记录的根"级别"属性的XML配置.
目前我的root配置如下:
<root>
<level value="WARN"/>
<appender-ref ref="LogFileAppender"/>
<appender-ref ref="DebugAppender"/>
</root>
Run Code Online (Sandbox Code Playgroud)
在我的Web应用程序Global.asax类中,我以为我可以用一些东西包装
protected override void Application_Start(object sender, EventArgs e) {
base.Application_Start(sender, e);
XmlConfigurator.Configure();
#if DEBUG
//Change logging level to DEBUG
#endif
}
Run Code Online (Sandbox Code Playgroud)
在调试中构建解决方案时,将根日志记录级别更改为调试.
这是可能的,我的想法是我想要的最佳实践类型解决方案,我将如何做到(或者你会如何做得更好)?
iPhone OS 3.0将在下周(3月17日)公布和预览.
我们都知道用户想要的功能集.在iPhone上复制/粘贴,彩信,Flash等
我们会看到那些.
我感兴趣的是开发社区认为SDK缺少需要的东西,使平台编程更容易,更高效.
我想在C#中为DateTime变量传递null值.该值应作为null存储在数据库中.
我尝试过使用Datetime.Minvalue,但它存储了一个默认值.它必须是数据库中的null.我怎么做?
当ASP.NET控件呈现时,它们的ID有时会发生变化,就像它们位于命名容器中一样.Button1例如,实际上可能具有ctl00_ContentMain_Button1呈现时的id .
我知道您可以在.cs文件中将JavaScript编写为字符串,获取控件的clientID并使用clientscript将脚本注入到页面中,但有没有一种方法可以使用ASP.NET Ajax直接从JavaScript引用控件?
我发现编写一个函数以递归方式解析dom并找到一个控件来保存我想要的id是不可靠的,所以我一直在寻找最佳实践而不是解决方法.
每当我想要一个断点,在那里没有任何东西可以打破(在循环内,&c),我倾向于自动下拉:
int i = 2;
Run Code Online (Sandbox Code Playgroud)
我很好奇别人用的是什么.
我在WPF应用程序中有一个文本框绑定到实现IDataErrorInfo的Linq to Entities类上的属性.文本框绑定具有ValidatesOnExceptions = True和ValidatesOnDataErrors = True.当文本框绑定到整数属性并且用户输入文本时,文本框轮廓显示为红色,因为我没有设置自定义样式.
在我的保存方法中,我怎么知道对象无法保存,因为它无效?我希望用户单击"保存"按钮,我可以通知他们问题,而不是禁用"保存"按钮.
干杯,
戴夫