Skip to content

Commit 3fe485f

Browse files
Initialization.
1 parent 994b64b commit 3fe485f

9 files changed

Lines changed: 288 additions & 136 deletions

File tree

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!-- log4net構成設定のセクション -->
3+
4+
<log4net debug="true"><!-- ← debug="true"の場合、デバッグ用のコンソール出力が有効になる。 -->
5+
6+
<!-- アペンダを選択することによって、ログの出力先を変更できる。 -->
7+
8+
<!--
9+
アペンダの例
10+
11+
FileAppender :ファイルに出力。
12+
RollingFileAppender :ファイルに出力。ローリング機能付き。
13+
EventLogAppender :イベントビューアに出力(ローカルのPCのみ)
14+
ConsoleAppender :コンソールに出力
15+
※ FileAppender、RollingFileAppenderは、ネットワーク上のフォルダ共有やネットワークドライブにへの出力も可能
16+
-->
17+
18+
<!--
19+
PatternLayoutで指定できるパターン
20+
パターン 説明
21+
%logger ログ出力が行われたlogger名
22+
%appdomain アプリケーションドメイン名
23+
●%date 日時を出力。「%date{yyyy/MM/dd HH:mm:ss,fff}」といった詳細指定も可能。
24+
●%level ログのレベル(Fatal/Errorなど)
25+
●%t ログを生成したスレッド
26+
●%message メッセージ
27+
●%newline 改行文字
28+
%literal{-} リテラル(%をそのまま出力する場合など)
29+
%file ファイル名
30+
%class クラス名
31+
%method メソッド名
32+
%line 行番号
33+
%location ログ出力した際の関数名とファイルのフルパス
34+
※ %file ~ %locationは処理負荷が高くなるため必要な時以外は使用しない。
35+
http://d.hatena.ne.jp/shima111/20060703
36+
-->
37+
38+
<!-- ローリング・ログファイル出力用アペンダ -->
39+
<appender name="ACCESS" type="log4net.Appender.RollingFileAppender">
40+
<param name="File" value="C:\root\files\resource\Log\ACCESS" />
41+
<!-- ローリングの設定 -->
42+
<param name="StaticLogFileName" value="false" />
43+
<param name="RollingStyle" value="date " />
44+
<param name="DatePattern" value='"."yyyy-MM-dd".log"' />
45+
<!-- 書き込み時の設定(追加 or 上書き、出力エンコーディング) -->
46+
<param name="AppendToFile" value="true" />
47+
<encoding value="utf-8" />
48+
<!-- メッセージのフォーマット -->
49+
<layout type="log4net.Layout.PatternLayout">
50+
<param name="ConversionPattern" value="[%date{yyyy/MM/dd HH:mm:ss,fff}],[%-5level],[%thread],%message%newline" />
51+
</layout>
52+
<!-- フィルタ(範囲)の設定 -->
53+
<filter type="log4net.Filter.LevelRangeFilter">
54+
<levelMin value="DEBUG" />
55+
<levelMax value="FATAL" />
56+
</filter>
57+
</appender>
58+
59+
<!-- ローリング・ログファイル出力用アペンダ -->
60+
<appender name="SQLTRACE" type="log4net.Appender.RollingFileAppender">
61+
<param name="File" value="C:\root\files\resource\Log\SQLTRACE" />
62+
<!-- ローリングの設定 -->
63+
<param name="StaticLogFileName" value="false" />
64+
<param name="RollingStyle" value="date " />
65+
<param name="DatePattern" value='"."yyyy-MM-dd".log"' />
66+
<!-- 書き込み時の設定(追加 or 上書き、出力エンコーディング) -->
67+
<param name="AppendToFile" value="true" />
68+
<encoding value="utf-8" />
69+
<!-- メッセージのフォーマット -->
70+
<layout type="log4net.Layout.PatternLayout">
71+
<param name="ConversionPattern" value="[%date{yyyy/MM/dd HH:mm:ss,fff}],[%-5level],[%thread],%message%newline" />
72+
</layout>
73+
<!-- フィルタ(範囲)の設定 -->
74+
<filter type="log4net.Filter.LevelRangeFilter">
75+
<levelMin value="DEBUG" />
76+
<levelMax value="FATAL" />
77+
</filter>
78+
</appender>
79+
80+
<!-- ローリング・ログファイル出力用アペンダ -->
81+
<appender name="OPERATION" type="log4net.Appender.RollingFileAppender">
82+
<param name="File" value="C:\root\files\resource\Log\OPERATION" />
83+
<!-- ローリングの設定 -->
84+
<param name="StaticLogFileName" value="false" />
85+
<param name="RollingStyle" value="date " />
86+
<param name="DatePattern" value='"."yyyy-MM-dd".log"' />
87+
<!-- 書き込み時の設定(追加 or 上書き、出力エンコーディング) -->
88+
<param name="AppendToFile" value="true" />
89+
<encoding value="utf-8" />
90+
<!-- メッセージのフォーマット -->
91+
<layout type="log4net.Layout.PatternLayout">
92+
<param name="ConversionPattern" value="[%date{yyyy/MM/dd HH:mm:ss,fff}],[%-5level],[%thread],%message%newline" />
93+
</layout>
94+
<!-- フィルタ(範囲)の設定 -->
95+
<filter type="log4net.Filter.LevelRangeFilter">
96+
<levelMin value="DEBUG" />
97+
<levelMax value="FATAL" />
98+
</filter>
99+
</appender>
100+
101+
<!--
102+
ロガーを作成する。
103+
ロガーにはロガー名、アペンダ、出力レベルを設定する。
104+
特定のレベルのログだけを出力したい場合には、
105+
フィルタ(範囲)機能を使用する。
106+
-->
107+
<!--
108+
↑出力レベル・高
109+
Fatal システム停止するような致命的な障害
110+
Error システム停止はしないが、問題となる障害
111+
Warn 障害ではない注意警告
112+
Info 操作ログなどの情報
113+
Debug 開発用のデバッグメッセージ
114+
All すべてのレベル
115+
↓出力レベル・低
116+
-->
117+
<!--
118+
Rootロガーを作成する(アペンダ×n、出力レベルを設定する)。
119+
全てのログがRootロガーに出力される。
120+
-->
121+
<root>
122+
</root>
123+
<!--
124+
個別のロガーを作成する(ロガー名、アペンダ×n、出力レベルを設定する)。
125+
プログラムから個別のロガー名を指定したログは、個別のロガーで処理される。
126+
-->
127+
<logger name="ACCESS">
128+
<level value="All" />
129+
<appender-ref ref="ACCESS" />
130+
</logger>
131+
<logger name="SQLTRACE">
132+
<level value="All" />
133+
<appender-ref ref="SQLTRACE" />
134+
</logger>
135+
<logger name="OPERATION">
136+
<level value="All" />
137+
<appender-ref ref="OPERATION" />
138+
</logger>
139+
</log4net>

root/programs/CS/Samples/AsyncSvc_sample/AsyncSvc_sample/LayerB.cs

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ public LayerB()
100100

101101
#region Member methods
102102

103+
#region Utilityメソッド
104+
103105
/// <summary>
104106
/// Converts base64 string to deserialized byte array.
105107
/// </summary>
@@ -115,21 +117,6 @@ private byte[] DeserializeFromBase64String(string base64String)
115117
return deserializeData;
116118
}
117119

118-
/// <summary>
119-
/// Converts byte array to serialized base64 string
120-
/// </summary>
121-
/// <param name="arrayData">byte array</param>
122-
/// <returns>base64 string</returns>
123-
public static string SerializeToBase64String(byte[] arrayData)
124-
{
125-
string base64String = string.Empty;
126-
if (arrayData != null)
127-
{
128-
CustomEncode.ToBase64String(arrayData);
129-
}
130-
return base64String;
131-
}
132-
133120
/// <summary>
134121
/// Get command information from database.
135122
/// </summary>
@@ -175,7 +162,30 @@ private void UpdateProgressRate(int taskID, AsyncProcessingServiceReturnValue us
175162
// Calls data access part of asynchronous processing service.
176163
LayerD myDao = new LayerD(this.GetDam(this.DamKeyforAMT));
177164
myDao.UpdateTaskProgress(asyncParameterValue, userReturnValue);
178-
}
165+
}
166+
167+
/// <summary>
168+
/// Updates the command of selected task
169+
/// </summary>
170+
/// <param name="taskID">Task ID</param>
171+
/// <param name="commandId">Command ID</param>
172+
/// <param name="userReturnValue">user parameter value</param>
173+
private void UpdateTaskCommand(int taskID, int commandId, AsyncProcessingServiceReturnValue userReturnValue)
174+
{
175+
// Sets parameters of AsyncProcessingServiceParameterValue to update the command of selected task.
176+
AsyncProcessingServiceParameterValue asyncParameterValue = new AsyncProcessingServiceParameterValue("AsyncProcessingService", "UpdateTaskCommand", "UpdateTaskCommand", "SQL",
177+
new MyUserInfo("AsyncProcessingService", "AsyncProcessingService"));
178+
asyncParameterValue.TaskId = taskID;
179+
asyncParameterValue.CommandId = commandId;
180+
181+
// Calls data access part of asynchronous processing service.
182+
LayerD myDao = new LayerD(this.GetDam(this.DamKeyforAMT));
183+
myDao.UpdateTaskCommand(asyncParameterValue, userReturnValue);
184+
}
185+
186+
#endregion
187+
188+
#region 非同期タスクの実行
179189

180190
/// <summary>
181191
/// Initiate the processing of asynchronous task.
@@ -282,24 +292,7 @@ private int GenerateProgressRate(int lastProgressRate)
282292
return randProgressRate.Next(lastProgressRate + 1, SUCCESS_STATE + 1);
283293
}
284294

285-
/// <summary>
286-
/// Updates the command of selected task
287-
/// </summary>
288-
/// <param name="taskID">Task ID</param>
289-
/// <param name="commandId">Command ID</param>
290-
/// <param name="userReturnValue">user parameter value</param>
291-
private void UpdateTaskCommand(int taskID, int commandId, AsyncProcessingServiceReturnValue userReturnValue)
292-
{
293-
// Sets parameters of AsyncProcessingServiceParameterValue to update the command of selected task.
294-
AsyncProcessingServiceParameterValue asyncParameterValue = new AsyncProcessingServiceParameterValue("AsyncProcessingService", "UpdateTaskCommand", "UpdateTaskCommand", "SQL",
295-
new MyUserInfo("AsyncProcessingService", "AsyncProcessingService"));
296-
asyncParameterValue.TaskId = taskID;
297-
asyncParameterValue.CommandId = commandId;
298-
299-
// Calls data access part of asynchronous processing service.
300-
LayerD myDao = new LayerD(this.GetDam(this.DamKeyforAMT));
301-
myDao.UpdateTaskCommand(asyncParameterValue, userReturnValue);
302-
}
295+
#endregion
303296

304297
#endregion
305298
}

root/programs/CS/Samples/AsyncSvc_sample/TestAsyncSvc_Sample/Program.cs

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
using Touryo.Infrastructure.Business.AsyncProcessingService;
2222
using Touryo.Infrastructure.Business.Util;
23+
using Touryo.Infrastructure.Public.Str;
2324
using Touryo.Infrastructure.Public.Db;
2425

2526
namespace TestAsyncSvc_Sample
@@ -36,21 +37,44 @@ static void Main(string[] args)
3637
program.InsertData();
3738
}
3839

40+
#region Utilityメソッド
41+
42+
/// <summary>
43+
/// Converts byte array to serialized base64 string
44+
/// </summary>
45+
/// <param name="arrayData">byte array</param>
46+
/// <returns>base64 string</returns>
47+
public static string SerializeToBase64String(byte[] arrayData)
48+
{
49+
string base64String = string.Empty;
50+
if (arrayData != null)
51+
{
52+
CustomEncode.ToBase64String(arrayData);
53+
}
54+
return base64String;
55+
}
56+
57+
#endregion
58+
59+
#region 非同期タスクの投入
60+
3961
/// <summary>
4062
/// Inserts asynchronous task information to the database
4163
/// </summary>
42-
/// <returns></returns>
64+
/// <returns>AsyncProcessingServiceParameterValue</returns>
4365
public AsyncProcessingServiceParameterValue InsertData()
4466
{
4567
// Create array data to serilize.
4668
byte[] arrayData = { 1, 2, 3, 4, 5 };
4769

4870
// Sets parameters of AsyncProcessingServiceParameterValue to insert asynchronous task information.
49-
AsyncProcessingServiceParameterValue asyncParameterValue = new AsyncProcessingServiceParameterValue("AsyncProcessingService", "InsertTask", "InsertTask", "SQL",
50-
new MyUserInfo("AsyncProcessingService", "AsyncProcessingService"));
71+
AsyncProcessingServiceParameterValue asyncParameterValue = new AsyncProcessingServiceParameterValue(
72+
"AsyncProcessingService", "InsertTask", "InsertTask", "SQL",
73+
new MyUserInfo("AsyncProcessingService", "AsyncProcessingService"));
74+
5175
asyncParameterValue.UserId = "A";
5276
asyncParameterValue.ProcessName = "AAA";
53-
asyncParameterValue.Data = AsyncSvc_sample.LayerB.SerializeToBase64String(arrayData);
77+
asyncParameterValue.Data = Program.SerializeToBase64String(arrayData);
5478
asyncParameterValue.ExecutionStartDateTime = DateTime.Now;
5579
asyncParameterValue.RegistrationDateTime = DateTime.Now;
5680
asyncParameterValue.NumberOfRetries = 0;
@@ -68,5 +92,7 @@ public AsyncProcessingServiceParameterValue InsertData()
6892
asyncReturnValue = (AsyncProcessingServiceReturnValue)layerB.DoBusinessLogic((AsyncProcessingServiceParameterValue)asyncParameterValue, iso);
6993
return asyncParameterValue;
7094
}
95+
96+
#endregion
7197
}
7298
}

root/programs/CS/Samples/AsyncSvc_sample/TestAsyncSvc_Sample/TestAsyncSvc_Sample.csproj

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,6 @@
8585
<Install>true</Install>
8686
</BootstrapperPackage>
8787
</ItemGroup>
88-
<ItemGroup>
89-
<ProjectReference Include="..\AsyncSvc_sample\AsyncSvc_sample.csproj">
90-
<Project>{43E8275B-683A-45EB-9BB5-34F85F7E30AF}</Project>
91-
<Name>AsyncSvc_sample</Name>
92-
</ProjectReference>
93-
</ItemGroup>
9488
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
9589
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
9690
Other similar extension points exist, see Microsoft.Common.targets.

root/programs/CS/Samples/AsyncSvc_sample/TestAsyncSvc_Sample/app.config

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<appSettings>
44
<!-- Log4Netのコンフィグファイルへのパス -->
55
<!-- リソース ファイルの場合 -->
6-
<add key="FxLog4NetConfFile" value="C:\root\files\resource\Log\SampleLogConf.xml" />
6+
<add key="FxLog4NetConfFile" value="C:\root\files\resource\AsyncProcessingService\Log\SampleLogConf.xml" />
77
<!-- 埋め込まれたリソースの場合 -->
88
<!-- D層のパフォーマンスログ出力機能のon・off -->
99
<add key="FxSqlTraceLog" value="on" />
@@ -17,19 +17,11 @@
1717
<!-- 共通部品の使用するパラメータ - end -->
1818
<!-- アプリケーションの使用するパラメータ - start -->
1919
<!-- SQLファイルファイル(フォルダ)へのパス -->
20-
<add key="SqlTextFilePath" value="C:\OpenTouryo\root\files\resource\Sql\sqlserver\AsyncProcessingService"/>
20+
<add key="SqlTextFilePath" value="C:\root\files\resource\AsyncProcessingService\Sql\sqlserver"/>
2121
<!-- アプリケーションの使用するパラメータ - end -->
2222
</appSettings>
2323
<connectionStrings>
2424
<!-- SQL Server / SQL Client用 -->
2525
<add name="ConnectionString_SQL" connectionString="Data Source=localhost\sqlexpress;Integrated Security=SSPI;Initial Catalog=AsyncProcessingServiceDB;"/>
2626
</connectionStrings>
27-
<runtime>
28-
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
29-
<dependentAssembly>
30-
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
31-
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
32-
</dependentAssembly>
33-
</assemblyBinding>
34-
</runtime>
3527
</configuration>

0 commit comments

Comments
 (0)