Elmah 過濾爬蟲機器人
ELMAH filter crawler errors
Global.asax file
void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
if (HttpContext.Current.Request.UserAgent.Contains("bot"))
e.Dismiss();
}
Elmah 過濾爬蟲機器人
void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
if (HttpContext.Current.Request.UserAgent.Contains("bot"))
e.Dismiss();
}
Azure SQL Database 備份方案的三種策略
|
|
[1]備份方案1
|
|
工具
|
使用 SqlPackage.exe
|
方法
|
非同步異地
|
頻率
|
使用本地Server的排程,設定三天或五天一次
|
成本
|
資料傳輸費用
|
說明
|
可撰寫排程程式自動匯出存至本地端,然後需使用時用手動匯入指定DB。
|
[2]備份方案2
|
|
工具
|
使用 SQL Server Management Studio 2012匯入匯出工具DTSWizard.exe
|
方法
|
非同步異地
|
頻率
|
一次性(臨時有需要可取得及時線上的)、人工處理不可排程
|
成本
|
資料傳輸費用
|
說明
|
人工手動備份
|
[3]備份方案3
|
|
工具
|
使用Windows Azure Blob 儲存體服務自動匯出
|
方法
|
備份至異地的儲存體
|
頻率
|
可自訂日期與執行備份的時間點、保留備份檔的保存期限、
以及可選擇永遠保留至少一個匯出檔案。 |
成本
|
Blob 儲存體費用、從 Blob 儲存體匯出至本地時會產生的資料傳輸費用
|
說明
|
雲端自動備份
|
Windows Azure 計費考量
儲存體:費用是根據使用的空間收費,而計算方式採累進費率和備援等級計算。 如需詳細資料與最新資訊,請參閱定價詳細資料文章的<資料管理>一節。 資料傳輸:輸入 Windows Azure 的資料傳輸是免費的。 輸出傳輸則必須支付頻寬使用量的費用,計算方式是根據地區特定的累進費率計算。 如需詳細資料,請參閱<定價詳細資料>文章的資料傳輸一節。 |
java.lang.NoClassDefFoundError: net/sf/json/JSONArray
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
</dependency>
log.Logger.Repository.Shutdown();
然後每次呼叫方法時,都開開關關這樣,using System; using System.Collections.Generic; using System.Linq; using System.Web; using log4net; using System.Reflection; //using log4net.Config; //using log4net.Repository.Hierarchy; //using log4net.Appender; //using log4net.Layout; //using log4net.Core; namespace WebApp_log4net { public class HandlerforLog : IHttpHandler { public void ProcessRequest(HttpContext context) { Write("Application is starting"); context.Response.ContentType = "text/plain"; context.Response.Write("Hello World"); } public void Write(String message) { ILog myLog = GetDyamicLogger(); myLog.Info("[Write]:" + message); } public static ILog GetDyamicLogger() { log4net.Repository.Hierarchy.Hierarchy hierarchy =
(log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository(); log4net.Appender.RollingFileAppender roller =
new log4net.Appender.RollingFileAppender(); roller.LockingModel = new log4net.Appender.FileAppender.MinimalLock(); roller.AppendToFile = true; roller.RollingStyle =
log4net.Appender.RollingFileAppender.RollingMode.Composite; roller.MaxSizeRollBackups = 29; // 0~29 is 30. roller.MaximumFileSize = "10MB"; roller.DatePattern = "yyyyMMdd"; roller.Layout = new log4net.Layout.PatternLayout(); roller.File = "log\\debug.log"; roller.StaticLogFileName = true; log4net.Layout.PatternLayout patternLayout =
new log4net.Layout.PatternLayout(); patternLayout.ConversionPattern =
@"%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"; patternLayout.ActivateOptions(); roller.Layout = patternLayout; roller.ActivateOptions(); hierarchy.Root.AddAppender(roller); hierarchy.Root.Level = log4net.Core.Level.All; hierarchy.Configured = true; DummyLogger dummyILogger = new DummyLogger("LogName"); dummyILogger.Hierarchy = hierarchy; dummyILogger.Level = log4net.Core.Level.All; dummyILogger.AddAppender(roller); return new log4net.Core.LogImpl(dummyILogger); } internal sealed class DummyLogger : log4net.Repository.Hierarchy.Logger { // Methods internal DummyLogger(string name) : base(name) { } } public bool IsReusable { get { return false; } } } }
Source not found. |
Source not found. |
filePattern="logs/log-%d{yyyyMMdd-HH}.log"
filePattern="logs/log-%d{yyyyMMdd-HHmm}.log"
filePattern="logs/log-%d{yyyyMMdd-HHmmss}.log"
filePattern="logs/log-%d{yyyyMMdd-HHmmss.SSS}.log"
filePattern="logs/log-%d{yyyyMMdd-HH}~%i.log"
package main; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class UsingLog4j2AndJCL { protected static Log log = LogFactory.getLog(UsingLog4j2AndJCL.class); public static void main(String[] args) { // TODO Auto-generated method stub log.info("Hello, World!"); log.error("Hello, World!"); } }
評估xxx函式逾時,且需以不安全的方法中止。這可能使目標處理序損毀。 我選擇直接停用 [啟用屬性評估及其他隱含函式呼叫] --------------------------- Microsoft Visual Studio -------------------...