新增AS3 Template的步驟如下:
1.點FD的Tools/Application Files會開啟FD所在的資料夾
2.在資料夾Templates/ProjectFiles/AS3Project/ 下新增自定義的Template
3.開啟FD,在Project視窗按滑鼠右鍵->Add 就可以看到新增的Template了
註:
如果要修改New AS3 Project時自動生成資料夾的相關資料的話可以到路徑C:\Program Files (x86)\FlashDevelop\Projects\120 ActionScript 3 - AS3 Project\ 修改。
tag說明
2012年12月12日 星期三
[Flash AS3] 在FlashDevelop的ToolBar加入自定義功能的按鈕
FlashDevelop是free且Open Source Code的IDE所以要在ToolBar加上自己用的功能當然也是可以的!
在ToolBar加入自定義功能的按鈕只需要在ToolBar.xml做修改即可(Win7的路徑是在C:\Program Files (x86)\FlashDevelop\Settings\ ToolBar.xml)。
例如做一個按鈕,點擊會開啟文字文件。就在ToolBar.xml的toolbar標籤中加入<button label="open notepad" click="RunProcess" tag="notepad" image="315" />重啟FD後就可以在ToolBar看到剛新增的按鈕了!
image編號如下圖:
在ToolBar加入自定義功能的按鈕只需要在ToolBar.xml做修改即可(Win7的路徑是在C:\Program Files (x86)\FlashDevelop\Settings\
例如做一個按鈕,點擊會開啟文字文件。就在ToolBar.xml的toolbar標籤中加入<button label="open notepad" click="RunProcess" tag="notepad" image="315" />重啟FD後就可以在ToolBar看到剛新增的按鈕了!
image編號如下圖:
[Flash AS3] code snippets tag
code snippets 很適合用在自定義的寫作規範的程式碼,在經常使用的情況下就可以考慮寫成code snippets來加快編碼的速度。
以下是很常用的tag說明:
$(EntryPoint) -- cursor position
$(CSLB) ("Coding Style Line Break") -- when generating code, tells where to insert a linebreak if the "Coding Style Type" option (program setting) is set to "Brace After Line".
$(CSLB) ("Coding Style Line Break") -- when generating code, tells where to insert a linebreak if the "Coding Style Type" option (program setting) is set to "Brace After Line".
如需要其它templates variables的說明可以到下列網址
2012年12月3日 星期一
[Flash AS3] 設定物件亮度
/** * 設定物件亮度 * @param obj 物件實體 * @param value 亮度值,value取值範圍 -1 ~ 1,對應Flash内容制作工具裡的 -100% ~ 100%! */ private function setBrightness(obj:DisplayObject , value:Number):void { var colorTransformer:ColorTransform = obj.transform.colorTransform; var backup_filters:* = obj.filters; if (value >= 0) { colorTransformer.blueMultiplier = 1 - value; colorTransformer.redMultiplier = 1 - value; colorTransformer.greenMultiplier = 1 - value; colorTransformer.redOffset = 255 * value; colorTransformer.greenOffset = 255 * value; colorTransformer.blueOffset = 255 * value; } else { value = Math.abs(value) colorTransformer.blueMultiplier = 1 - value; colorTransformer.redMultiplier = 1 - value; colorTransformer.greenMultiplier = 1 - value; colorTransformer.redOffset = 0; colorTransformer.greenOffset = 0; colorTransformer.blueOffset = 0; } obj.transform.colorTransform = colorTransformer; obj.filters = backup_filters; }
2012年10月25日 星期四
[C# ASP.Net] Client端資料當參數傳到新頁面
如果有些資料不是很重要,又不想記在Server端時,就會把這些資料記在Client端。那如果想要在使用者動作後(按下按鈕)開啟新視窗,又要以儲在Client端的資料當參數帶到新視窗時可能得到一個錯誤訊息如下:
描述: 要求驗證偵測到具有潛在危險的用戶端輸入值,對這個要求的處理已經中止。這個值可能表示有人嘗試危害應用程式的安全性,例如跨站台的指令碼處理攻擊。若要允許頁面覆寫應用程式要求驗證設定,請將 httpRuntime 組態區段中的 requestValidationMode 屬性設定為 requestValidationMode="2.0"。例如: <httpRuntime requestValidationMode="2.0" />。設定這項值之後,您就可以停用要求驗證,方法是在頁面指令或 <pages> 組態區段中設定 validateRequest="false"。但是我們強烈建議您的應用程式應該明確地檢查所有這類的輸入。如需詳細資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=153133。
在這些值可能被改的情況下,確認不會對網頁或其它資料有危險性時才可以讓這網頁不做驗證。讓網頁不做驗證的方式很簡單步驟如下:
1.Web.config檔加入
<system.web>
<httpRuntime requestValidationMode ="2.0"/>
</system.web>
requestValidationMode 預設是4.0
2.在要開啟的新網頁<@ Page /> 中加入ValidateRequest="false"
表示這個網頁停止要求驗證
[C# ASP.Net] 在GridView Bind 資料之前做資料的過濾
有時候從DB取出資料後想再對資料做些手腳,像是過濾、排序或者是只想秀出前幾筆的資料。這些都可以透過DataView來幫你完成。
通常我取到的都是DataTable型態的資料,所以必需先把資料轉成DataView的型態資料,如下:DataView dataView = new DataView(dataTable);
通常我取到的都是DataTable型態的資料,所以必需先把資料轉成DataView的型態資料,如下:DataView dataView = new DataView(dataTable);
DataView型態的資料就可以有過濾、排序方法可以使用囉!
過濾:
過濾的用法就像是在SQL下Where指令一樣,例如:
dataView.RowFilter = "UserName = '%Johnson%'";
RowFilter就會找到CloumnName為UserName的資料列,比對內容為Johnson才會記在dataView中,其它的資料就會被移除。過濾後再指dataView指定為GridView的DataSource再Bind後就可以看到過濾後的結果了。當然也可以使用like來過濾含有指定字串的都要顯示,指令如下:
dataView.RowFilter = "UserName like '%John%'";
這個就會列出UserName欄位中,只要含有字串John的都會被顯示出來。
排序:
可以使用Sort屬性,對單一或多個資料行做排序,並且可以加入ASC和DESC參數。
只顯示前幾筆資料:
如果有需要只顯示前幾筆資料的話,我使用的方法是Delete,例如我有100筆資料,只想顯示前50筆那就用Delete把第50筆之後的資料全部都Delete。範例如下:
int showDataNum = 50;
int rowCount = dataView.Count; //100筆
if(rowCount > showDataNum)
{
for(int i = showDataNum; i < rowCount; i++)
dataView.Delete(showDataNum);
}
2012年10月21日 星期日
[C# .Net] 頁面自動符合手機瀏覽器大小
在Head標籤中加入<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">頁面就可以依照手機畫面大小做自動縮放的功能!
[C# .Net] Get SVN Revision Number
在.Net或AP要把SVN的版本資訊寫入並在RunTime取得版本有以下幾個步驟
首先有幾個問題必須先知道
1.版本的資訊寫在哪呢?
2.怎麼在編譯時期把SVN的版本號寫入版本資訊中?
3.在RunTime時期怎麼取得版本資訊?
解決這三個問題就OK啦!
第一個和第二個問題在.Net和AP是用一樣的方法
下面就不一一列出解法了
1.版本的資訊寫在哪呢?
Ans:在你的專案下你可以發現一個Properties的資料夾,裡面有一個AssemblyInfo.cs檔,而版本資訊就寫在裡面囉!
2.怎麼在編譯時期把SVN的版本號寫入版本資訊中?
Ans:寫入版本可以透過建置後事件命令,來修改AssemblyInfo.cs檔的版本資訊,有以下幾個步驟:
1.在建置後事件命令輸入SubWCRev.exe "$(SolutionDir)." "$(ProjectDir)Properties\ AssemblyInfo.tpl.cs" "$(ProjectDir)Properties\ AssemblyInfo.cs" -f
2.在Properties的資料夾新增一個AssemblyInfo.tpl.cs的檔案,檔案內容就Copy AssemblyInfo.cs的內容:
// 組件的版本資訊是由下列四項值構成:
//
// 主要版本
// 次要版本
// 組建編號
// 修訂編號
//
// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
// 指定為預設值:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.$WCREV$.0.0")]
[assembly: AssemblyFileVersion("1.$WCREV$.0.0")]
3.在RunTime時期怎麼取得版本資訊?
Ans:.Net取得的方法:Assembly. GetExecutingAssembly(). GetName().Version.ToString();
AP取得的方法:Assembly.LoadFile(Application. ExecutablePath).GetName(). Version.ToString();
首先有幾個問題必須先知道
1.版本的資訊寫在哪呢?
2.怎麼在編譯時期把SVN的版本號寫入版本資訊中?
3.在RunTime時期怎麼取得版本資訊?
解決這三個問題就OK啦!
第一個和第二個問題在.Net和AP是用一樣的方法
下面就不一一列出解法了
1.版本的資訊寫在哪呢?
Ans:在你的專案下你可以發現一個Properties的資料夾,裡面有一個AssemblyInfo.cs檔,而版本資訊就寫在裡面囉!
2.怎麼在編譯時期把SVN的版本號寫入版本資訊中?
Ans:寫入版本可以透過建置後事件命令,來修改AssemblyInfo.cs檔的版本資訊,有以下幾個步驟:
1.在建置後事件命令輸入SubWCRev.exe "$(SolutionDir)." "$(ProjectDir)Properties\
2.在Properties的資料夾新增一個AssemblyInfo.tpl.cs的檔案,檔案內容就Copy AssemblyInfo.cs的內容:
// 組件的版本資訊是由下列四項值構成:
//
// 主要版本
// 次要版本
// 組建編號
// 修訂編號
//
// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
// 指定為預設值:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.$WCREV$.0.0")]
[assembly: AssemblyFileVersion("1.$WCREV$.0.0")]
以此範例來說,版本資訊會顯示成1.SvnVersion.0.0
如此在建置後事件就可以改版本資訊了。
3.在RunTime時期怎麼取得版本資訊?
Ans:.Net取得的方法:Assembly.
AP取得的方法:Assembly.LoadFile(Application.
2012年10月9日 星期二
網頁上顯示特殊符號
網頁上有些資料可能是動態從DB或其它地方取得然後在前台顯示,但是資料中有可能會有一些Html用的標籤,就會導致顯示出來的文字會有問題。所以在取得資料時就要先經過轉碼的動作來避免這個問題。
轉碼可以到HTML常用的特殊符號這個網頁來找符號要轉成那個碼。例如&就要轉成& 以此類推,這樣就能正常顯示等殊符號在網頁上囉!
這個也可以用在寫XML註解的地方喔!
轉碼可以到HTML常用的特殊符號這個網頁來找符號要轉成那個碼。例如&就要轉成& 以此類推,這樣就能正常顯示等殊符號在網頁上囉!
這個也可以用在寫XML註解的地方喔!
[C# .Net] TextBox限制只能輸入數字
在前端加入Script如下
然後再後端把想要限制的TextBox在他的Attribute加入一個OnKeyPress的事件會去呼叫上面的javascript即可!
<script type="text/javascript"> function txtKeyNumber() { if (!(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) || (window.event.keyCode == 13) || (window.event.keyCode == 46) || (window.event.keyCode == 45))) //這段是判斷如果輸入的不是數字或小數點!那將無法輸入文字 { event.returnValue = false; } } </script>
然後再後端把想要限制的TextBox在他的Attribute加入一個OnKeyPress的事件會去呼叫上面的javascript即可!
txtOnlyNumber.Attributes.Add("OnKeyPress", "txtKeyNumber();");
2012年10月2日 星期二
[SQL] delete all records and reset the auto increment value
當Table中有自動累加的欄位時,下命令Delete也是沒有辦法清除累加值的資訊,但是可以使用
TRUNCATE TABLE some_table
這個命令來完全的清除所有的紀錄,但是要切記,使用這個命令要格外小心。因為使用後就再也無法回復,而且也不會有任何紀錄!用Cmd在IIS上裝.netFrameWork
以命令的方式裝.netFrameWork4.0
1. 先開啟命令視窗
2. cd c:\Windows\Microsoft\ Framework\v4.0.30319
3. aspnet_regiis -i
等安裝完後再下命令重啟IIS
iisreset
1. 先開啟命令視窗
2. cd c:\Windows\Microsoft\
3. aspnet_regiis -i
等安裝完後再下命令重啟IIS
iisreset
2012年10月1日 星期一
[C# .Net] Server端 註冊Script到Client端 當被UpdatePanel包起來時
一般Server端要註冊Script到Client端時使用RegisterClientScriptBlock即可,如以下範例
那如果有被UpdatePanel包起來時,使用上面的方式就會沒有任何效果!而必需改用下面的方式:
ClientScript.RegisterClientScriptBlock(this .GetType(), " onSelectedNodeChanged"," document.all.getElementById('" + ctrl.ClientID + "'). visible=false;");
那如果有被UpdatePanel包起來時,使用上面的方式就會沒有任何效果!而必需改用下面的方式:
ScriptManager.RegisterStartupScript(this. Page, this.Page.GetType(), " DynamicResponseScriptBlock" + new Random().Next().ToString() , "alert('hi');", true);
[C# .Net] server side dynamic add script in client side
Server端動態加入Script到Client端的方式有很多,根據Script放置的位置不一樣,所使用的語法也會不同。
以下範例為加Scrip到各區塊的語法(依上到下的順序):
RegisterClientScriptBlock
RegisterStartupScript
以下範例為加Scrip到各區塊的語法(依上到下的順序):
HtmlGenericControljqueryInclude = new HtmlGene ricControl("link"); jqueryInclude. Attributes.Add("href", " Styles/superTables.css"); jqueryInclude. Attributes.Add("rel", " stylesheet"); jqueryInclude. Attributes.Add("type", "text/ css"); Page.Header. Controls.Add(jqueryInclude);
加在</head>的標籤之前
RegisterClientScriptBlock
string scriptContent = "this is your script!!"; ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "dynamicScript", scriptContent, true);
RegisterStartupScript
string scriptContent = "this is your script!!";
ScriptManager.RegisterStartupScript(this, this.GetType(), "dynamicScript", scriptContent, true);
2012年9月14日 星期五
[C# .Net] Client Side Call Server Side Method - Using PageMethods
Client 端要呼叫Server端的方法有許多方式,以下範列是用PageMethods來呼叫Server端的方法。
Client端的寫法:
Client端的寫法:
<script type="text/javascript">
function functionName() { PageMethods.serverFunctionName(param1,param2, onSuccess, onFail); } function onSuccess(response, context, method) { if (method == ' sendCommandToModifyChance') { alert(response); } } function onFail(response, context, method) { if (method == ' sendCommandToModifyChance') { alert("command sned error!"); } } </script>
Server 端的寫法:
[System.Web.Services.WebMethod]//一定要宣告成public static public static void serverFunctionName(param1,param2){
//do something }
注意事項:
1. Server端的方法上面要宣告[System.Web.Services.WebMethod ]的標籤
2. 要被Client呼叫的方法一定要宣告成public static
3. 在<form>標籤下加入ScriptManager
form id="form1" runat="server"> <asp:ScriptManager ID=" ScriptManager1" runat="server" EnablePageMethods="true"> </asp:ScriptManager>
2012年9月4日 星期二
[C# .Net] GridView 固定標頭
要固定GridView標頭的這個功能我想是很多人需要用到的,尤其是資料量大的時候更顯得出它的重要。我想使用者並不會想要在看某筆資料時,還要拉到頂端看這欄位所代表的意思。
固定GridView標頭的方式有很多種,最常用的應該是用CSS樣式來做這樣的效果。有的是使用JQuery方法很多種,最後筆者是選superTable來達到固定標頭的功能,而且還可以固定column剛好符合我的而求。最令我想用superTable的另一個原因是因為它可以跨Browser,在官網中就可以知道它所支援的Browser有 Firefox 2+, Internet Explorer 5.5+, Safari 3+, Opera 9+ and Chrome (Tested in Windows)
參考資料:
SuperTabl 官網
SuperTable用法範例
JQuery用法
CCS樣式範例
固定GridView標頭的方式有很多種,最常用的應該是用CSS樣式來做這樣的效果。有的是使用JQuery方法很多種,最後筆者是選superTable來達到固定標頭的功能,而且還可以固定column剛好符合我的而求。最令我想用superTable的另一個原因是因為它可以跨Browser,在官網中就可以知道它所支援的Browser有 Firefox 2+, Internet Explorer 5.5+, Safari 3+, Opera 9+ and Chrome (Tested in Windows)
參考資料:
SuperTabl 官網
SuperTable用法範例
JQuery用法
CCS樣式範例
2012年9月1日 星期六
[IT] TCP Protocol 和 IP Protocol 的功能簡介
IP(Internet Protocol):用來處理封包的路徑選擇(Routing,簡稱路由)
TCP(Transmission Control Protocol):負責比較高層的功能,如分段(segmentation)、重組(reassembly) 及錯誤偵測(error detection)。
[C#] WeifenLuo的DockPanel 預設Float視窗的大小
Float視窗的預設大小可由dockPanel的屬性DefaultFloatWindowSize 來做設定
dockPanel1. DefaultFloatWindowSize = new System.Drawing.Size(width, height);
[C#] log4net 教學及使用範例 - RollingFileAppender
這個Appender會將Log以檔案的方式紀錄到指定的路徑下
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<-- Log會寫在程式執行路徑下的Logs\LogFile.txt -->
<file value="Logs\LogFile.txt" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <!--日期的格式 yyyyMMdd-HHmm:Log會以分來切割資料--> <datePattern value="yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="Date:%d%nThreadID:%t%nLevel:%level%nLogger:%logger%nLine:%l%nMessage:%message%nException:%exception%n%n" /> </layout> </appender> <root> <level value="ALL" /> <appender-ref ref="RollingFileAppender" /> </root> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup> <system.web> <membership defaultProvider="ClientAuthenticationMembershipProvider"> <providers> <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> </providers> </membership> <roleManager defaultProvider="ClientRoleProvider" enabled="true"> <providers> <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> </providers> </roleManager> </system.web> </configuration>
[C#] log4net 教學及使用範例 - SmtpAppender
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <!-- This use SMTP to send mail. --> <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> <to value="收件者Mail" /> <from value="寄件者Mail" />
<!-- 是否使用SSL加密 --> <EnableSsl value="true" /> <username value="寄件者帳號" /> <password value="寄件者密碼" /> <subject value="主旨" />
<!-- smtpHost 在此是以google的為範例 --> <smtpHost value="smtp.gmail.com" /> <authentication value="Basic" /> <port value="25" /> <bufferSize value="512" /> <lossy value="true" /> <evaluator type="log4net.Core.LevelEvaluator,log4net"> <threshold value="ERROR" /> </evaluator> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="LogName:%c%nLevel:%level%nData:%date%nThreadID:%thread%nMSG:%message%nEX:%exception%n%n" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="WARN"/> <levelMax value="FATAL"/> </filter> </appender> <root> <level value="ALL" /> <appender-ref ref="SmtpAppender" /> </root> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup> <system.web> <membership defaultProvider="ClientAuthenticationMembershipProvider"> <providers> <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> </providers> </membership> <roleManager defaultProvider="ClientRoleProvider" enabled="true"> <providers> <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> </providers> </roleManager> </system.web> </configuration>
[C#] log4net 教學及使用範例 - ConsoleAppender
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="Date:%d%nThreadID:%t%nLevel:%level%nLogger:%logger%nLine:%l%nMessage:%message%nException:%exception%n%n" />
</layout>
<!--輸出的Log層級在DEBUG和FATAL之間(只有INFO的LOG不會被輸出) -->
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG"/>
<levelMax value="FATAL"/>
</filter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>
</system.web>
</configuration>
[C#] log4net 教學及使用範例(一)
功能簡介:這裡講的log4net是一個很好用的open source code的組件。可以把你想輸出的log以不同的 格式輸出到不同的媒介。- 用途:主要用途當然就是要讓自己能夠在第一時間能夠很快又方便的找到Bug或者是自己想看的資訊。
- Log的分級:總共分成七級( 但實際可以在程式碼被呼叫的只有2-6級 )
- OFF - nothing gets logged (cannot be called)
- FATAL。
- ERROR
- WARN
- INFO
- DEBUG
- ALL - everything gets logged (cannot be called)
- 組態設定:
- Root :
所有的Log都繼承自root,所以預設的level為INFO,表示DEBUG層級的資訊預設<root> <level value="INFO" /> <appender-ref ref="RollingFileAppender" /> <appender-ref ref="SmtpAppender" /> <appender-ref ref="ConsoleAppender" /> </root>
- ConfigSections:
這個標籤要放在 <configuration> 標籤下的第一個位置,不然會出錯。<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections>
- Appender:
指定要用那一種方式寫入Log。下面的例子便是把Log輸出到Console的表示法。<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
- Layout:
Log輸出的格式。<layout type="log4net.Layout.PatternLayout"> <conversionPattern value="Date:%d%nThreadID:%t%nLevel:%level%nLogger:%logger%nLine:%l%nMessage:%message%nException:%exception%n%n" /> </layout>
- Conversion Pattern:
把Value的值轉換成Log資料。Value中的變數如下:%m(message):輸出的Log訊息,如ILog.Debug(message)輸出的一條消息%n(new line):換行%d(datetime):輸出當前语句運行的時間%r(run time):輸出程序從運行到執行到當前語句時消耗的毫秒數%t(thread id):當前語句所在的執行序ID%p(priority): 日志的當前優先級别,即DEBUG、INFO、WARN…等%level:錯誤層級%c(class):當前Log對象的名稱%L(line):輸出語句所在的行號%F(file):輸出語句所在的文件名%-數字:表示該項的最小長度,如果不夠,則用空格填充 - Filters
用來過濾Log,過濾方式可依照Log level 或依Log字串....等等方式。
(注意: filter的條件一定要在layout之後才有作用 )
過濾的方式如下: - StringMatchFilter
- LevelRangeFilter
- LevelMatchFilter
- DenyAllFilter
- 以下為一個簡單的組態設定的寫法,下次有空時再補上其它資料:
<?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="LogName:%c%nLevel:%level%nData:%date%nThreadID:%thread%nMSG:%message%nEX:%exception%n%n" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="WARN"/> <levelMax value="FATAL"/> </filter> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup> <system.web> <membership defaultProvider="ClientAuthenticationMembershipProvider"> <providers> <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> </providers> </membership> <roleManager defaultProvider="ClientRoleProvider" enabled="true"> <providers> <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> </providers> </roleManager> </system.web> </configuration>
訂閱:
文章 (Atom)