1
1
using System ;
2
+ using System . IO ;
3
+ using System . Linq ;
2
4
using System . Reflection ;
5
+ using System . Text ;
3
6
using System . Threading ;
7
+ using System . Threading . Tasks ;
8
+ using AWS . Logger . Log4net ;
4
9
using AWS . Logger . TestUtils ;
5
10
using log4net ;
6
11
using log4net . Config ;
@@ -12,13 +17,18 @@ public class Log4NetTestClass : BaseTestClass
12
17
{
13
18
public ILog Logger ;
14
19
15
- private void GetLog4NetLogger ( string fileName , string logName )
20
+ private void GetLog4NetLogger ( string fileName , string logName , string logGroupName )
16
21
{
17
22
// Create logger
18
23
var repositoryAssembly = typeof ( Log4NetTestClass ) . GetTypeInfo ( ) . Assembly ;
19
24
var loggerRepository = LogManager . GetRepository ( repositoryAssembly ) ;
20
- XmlConfigurator . Configure ( loggerRepository , new System . IO . FileInfo ( fileName ) ) ;
21
- Logger = LogManager . GetLogger ( repositoryAssembly , logName ) ;
25
+ var fileInfo = new FileInfo ( fileName ) ;
26
+ var fileContent = File . ReadAllText ( fileInfo . FullName ) ;
27
+ using ( Stream memoryStream = new MemoryStream ( Encoding . UTF8 . GetBytes ( fileContent . Replace ( "{LOG_GROUP_NAME}" , logGroupName ) ) ) )
28
+ {
29
+ XmlConfigurator . Configure ( loggerRepository , memoryStream ) ;
30
+ Logger = LogManager . GetLogger ( repositoryAssembly , logName ) ;
31
+ }
22
32
}
23
33
24
34
public Log4NetTestClass ( TestFixture testFixture ) : base ( testFixture )
@@ -27,42 +37,46 @@ public Log4NetTestClass(TestFixture testFixture) : base(testFixture)
27
37
28
38
#region Test Cases
29
39
[ Fact ]
30
- public void Log4Net ( )
40
+ public async Task Log4Net ( )
31
41
{
32
- GetLog4NetLogger ( "log4net.config" , "Log4Net" ) ;
33
- SimpleLoggingTest ( "AWSLog4NetGroupLog4Net" ) ;
42
+ var logGroupName = $ "AWSLog4NetGroupLog4Net{ Guid . NewGuid ( ) . ToString ( ) . Split ( '-' ) . Last ( ) } ";
43
+ GetLog4NetLogger ( "log4net.config" , "Log4Net" , logGroupName ) ;
44
+ await SimpleLoggingTest ( logGroupName ) ;
34
45
}
35
46
36
47
[ Fact ]
37
- public void MultiThreadTest ( )
48
+ public async Task MultiThreadTest ( )
38
49
{
39
- GetLog4NetLogger ( "MultiThreadTest.config" , "MultiThreadTest" ) ;
40
- MultiThreadTestGroup ( "AWSLog4NetGroupLog4NetMultiThreadTest" ) ;
50
+ var logGroupName = $ "AWSLog4NetGroupLog4NetMultiThreadTest{ Guid . NewGuid ( ) . ToString ( ) . Split ( '-' ) . Last ( ) } ";
51
+ GetLog4NetLogger ( "MultiThreadTest.config" , "MultiThreadTest" , logGroupName ) ;
52
+ await MultiThreadTestGroup ( logGroupName ) ;
41
53
}
42
54
43
55
[ Fact ]
44
- public void MultiThreadBufferFullTest ( )
56
+ public async Task MultiThreadBufferFullTest ( )
45
57
{
46
- GetLog4NetLogger ( "MultiThreadBufferFullTest.config" , "MultiThreadBufferFullTest" ) ;
47
- MultiThreadBufferFullTestGroup ( "AWSLog4NetGroupMultiThreadBufferFullTest" ) ;
58
+ var logGroupName = $ "AWSLog4NetGroupMultiThreadBufferFullTest{ Guid . NewGuid ( ) . ToString ( ) . Split ( '-' ) . Last ( ) } ";
59
+ GetLog4NetLogger ( "MultiThreadBufferFullTest.config" , "MultiThreadBufferFullTest" , logGroupName ) ;
60
+ await MultiThreadBufferFullTestGroup ( logGroupName ) ;
48
61
}
49
62
50
63
/// <summary>
51
64
/// Verifies that multiple producers can log to the same log stream
52
65
/// when an override log stream name is provided
53
66
/// </summary>
54
67
[ Fact ]
55
- public void CustomLogStreamNameTest ( )
68
+ public async Task CustomLogStreamNameTest ( )
56
69
{
57
- GetLog4NetLogger ( "OverrideLogStreamName.config" , "OverrideLogStreamName" ) ;
58
- MultiThreadTestGroup ( "AWSLog4NetGroupOverrideLogStreamName" ) ;
70
+ var logGroupName = $ "AWSLog4NetGroupMultiThreadBufferFullTest{ Guid . NewGuid ( ) . ToString ( ) . Split ( '-' ) . Last ( ) } ";
71
+ GetLog4NetLogger ( "OverrideLogStreamName.config" , "OverrideLogStreamName" , logGroupName ) ;
72
+ await MultiThreadTestGroup ( logGroupName ) ;
59
73
}
60
74
61
75
protected override void LogMessages ( int count )
62
76
{
63
77
for ( int i = 0 ; i < count - 1 ; i ++ )
64
78
{
65
- Logger . Debug ( string . Format ( "Test logging message {0} Log4Net, Thread Id:{1}" , i , Thread . CurrentThread . ManagedThreadId ) ) ;
79
+ Logger . Debug ( string . Format ( "Test logging message {0} Log4Net, Thread Id:{1}" , i , Environment . CurrentManagedThreadId ) ) ;
66
80
}
67
81
Logger . Debug ( LASTMESSAGE ) ;
68
82
}
0 commit comments