Skip to content

Commit 51ebf17

Browse files
committed
Adopt *log4net* for logging.
1 parent b2d60f0 commit 51ebf17

File tree

3 files changed

+104
-7
lines changed

3 files changed

+104
-7
lines changed

JavaToCSharpCli/JavaToCSharpCli.csproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,15 @@
44
<OutputType>Exe</OutputType>
55
<TargetFramework>net5.0</TargetFramework>
66
</PropertyGroup>
7+
<ItemGroup>
8+
<PackageReference Include="log4net" Version="2.0.12" />
9+
</ItemGroup>
710
<ItemGroup>
811
<ProjectReference Include="..\JavaToCSharp\JavaToCSharp.csproj" />
912
</ItemGroup>
13+
<ItemGroup>
14+
<None Update="log4net.config">
15+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
16+
</None>
17+
</ItemGroup>
1018
</Project>

JavaToCSharpCli/Program.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
using System;
22
using System.IO;
33
using JavaToCSharp;
4+
using log4net;
5+
using log4net.Config;
46

57
namespace JavaToCSharpCli
68
{
79
public class Program
810
{
11+
private static readonly ILog _logger = LogManager.GetLogger(typeof(Program));
912
public static void Main(string[] args)
1013
{
14+
GlobalContext.Properties["appname"] = "JavaToCSharpCli";
15+
XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));
1116
try
1217
{
1318
if (args == null || args.Length < 3)
@@ -28,7 +33,7 @@ public static void Main(string[] args)
2833
}
2934
catch(Exception ex)
3035
{
31-
Console.WriteLine(ex);
36+
_logger.Error(ex.Message, ex);
3237
}
3338
}
3439

@@ -45,13 +50,13 @@ private static void ConvertToCSharpDir(string folderPath, string outputFolderPat
4550
false);
4651
}
4752
else
48-
Console.WriteLine("Java input folder doesn't exist!");
53+
_logger.Info("Java input folder doesn't exist!");
4954
}
5055

5156
private static void ConvertToCSharpFile(string filePath, string outputFilePath, bool overwrite = true)
5257
{
5358
if (!overwrite && File.Exists(outputFilePath))
54-
Console.WriteLine($"[INFO] {outputFilePath} exists, skip to next.");
59+
_logger.Info($"{outputFilePath} exists, skip to next.");
5560
else if (File.Exists(filePath))
5661
{
5762
try
@@ -60,20 +65,20 @@ private static void ConvertToCSharpFile(string filePath, string outputFilePath,
6065
var options = new JavaConversionOptions();
6166

6267
options.WarningEncountered += (sender, eventArgs)
63-
=> Console.WriteLine($"[WARNING] Line {eventArgs.JavaLineNumber}: {eventArgs.Message}");
68+
=> _logger.Warn($"[WARNING] Line {eventArgs.JavaLineNumber}: {eventArgs.Message}");
6469

6570
var parsed = JavaToCSharpConverter.ConvertText(javaText, options);
6671

6772
File.WriteAllText(outputFilePath, parsed);
68-
Console.WriteLine($"{filePath} was done!");
73+
_logger.Info($"{filePath} was done!");
6974
}
7075
catch (Exception ex)
7176
{
72-
Console.WriteLine($"[ERROR] {filePath} was failed! err = " + ex);
77+
_logger.Error($"{filePath} was failed! err = " + ex.Message, ex);
7378
}
7479
}
7580
else
76-
Console.WriteLine("Java input file doesn't exist!");
81+
_logger.Info("Java input file doesn't exist!");
7782
}
7883

7984
private static void ShowHelp()

JavaToCSharpCli/log4net.config

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3+
<appender name="ErrorFile" type="log4net.Appender.RollingFileAppender">
4+
<file type="log4net.Util.PatternString" value="C:\applogs\%property{appname}\Error-%property{appname}.log" />
5+
<encoding value="utf-8" />
6+
<appendToFile value="true" />
7+
<maximumFileSize value="10000KB" />
8+
<maxSizeRollBackups value="50" />
9+
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
10+
<layout type="log4net.Layout.PatternLayout">
11+
<conversionPattern value="%date&#x9;[%thread]&#x9;%level&#x9;%logger&#x9;%property{appname}&#x9;- %message%newline" />
12+
</layout>
13+
<filter type="log4net.Filter.LevelRangeFilter">
14+
<levelMin value="ERROR" />
15+
<levelMax value="FATAL" />
16+
</filter>
17+
<filter type="log4net.Filter.DenyAllFilter" />
18+
</appender>
19+
<appender name="WarnFile" type="log4net.Appender.RollingFileAppender">
20+
<file type="log4net.Util.PatternString" value="C:\applogs\%property{appname}\Warn-%property{appname}.log" />
21+
<encoding value="utf-8" />
22+
<appendToFile value="true" />
23+
<maximumFileSize value="10000KB" />
24+
<maxSizeRollBackups value="50" />
25+
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
26+
<layout type="log4net.Layout.PatternLayout">
27+
<conversionPattern value="%date&#x9;[%thread]&#x9;%level&#x9;%logger&#x9;%property{appname}&#x9;- %message%newline" />
28+
</layout>
29+
<filter type="log4net.Filter.LevelMatchFilter">
30+
<param name="LevelToMatch" value="WARN" />
31+
</filter>
32+
<filter type="log4net.Filter.DenyAllFilter" />
33+
</appender>
34+
<appender name="InfoFile" type="log4net.Appender.RollingFileAppender">
35+
<file type="log4net.Util.PatternString" value="C:\applogs\%property{appname}\Info-%property{appname}.log" />
36+
<encoding value="utf-8" />
37+
<appendToFile value="true" />
38+
<maximumFileSize value="10000KB" />
39+
<maxSizeRollBackups value="50" />
40+
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
41+
<layout type="log4net.Layout.PatternLayout">
42+
<conversionPattern value="%date&#x9;[%thread]&#x9;%level&#x9;%logger&#x9;%property{appname}&#x9;- %message%newline" />
43+
</layout>
44+
<filter type="log4net.Filter.LevelMatchFilter">
45+
<levelToMatch value="INFO" />
46+
</filter>
47+
<filter type="log4net.Filter.DenyAllFilter" />
48+
</appender>
49+
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
50+
<file type="log4net.Util.PatternString" value="C:\applogs\%property{appname}\ALL-%property{appname}.log" />
51+
<encoding value="utf-8" />
52+
<appendToFile value="true" />
53+
<maximumFileSize value="10000KB" />
54+
<maxSizeRollBackups value="50" />
55+
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
56+
<layout type="log4net.Layout.PatternLayout">
57+
<conversionPattern value="%date&#x9;[%thread]&#x9;%level&#x9;%logger&#x9;%property{appname}&#x9;- %message%newline" />
58+
</layout>
59+
</appender>
60+
<appender name="PerformanceRollingFile" type="log4net.Appender.RollingFileAppender">
61+
<file type="log4net.Util.PatternString" value="C:\applogs\%property{appname}\Performance-%property{appname}.log" />
62+
<encoding value="utf-8" />
63+
<appendToFile value="true" />
64+
<maximumFileSize value="10000KB" />
65+
<maxSizeRollBackups value="50" />
66+
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
67+
<layout type="log4net.Layout.PatternLayout">
68+
<conversionPattern value="%date&#x9;[%thread]&#x9;%level&#x9;%logger&#x9;%property{appname}&#x9;- %message%newline" />
69+
</layout>
70+
</appender>
71+
<appender name="Console" type="log4net.Appender.ConsoleAppender">
72+
<layout type="log4net.Layout.PatternLayout">
73+
<conversionPattern value="%date&#x9;[%thread]&#x9;%level&#x9;%logger&#x9;%property{appname}&#x9;- %message%newline" />
74+
</layout>
75+
</appender>
76+
<root>
77+
<level value="ALL" />
78+
<appender-ref ref="Console" />
79+
<appender-ref ref="RollingFile" />
80+
<appender-ref ref="InfoFile" />
81+
<appender-ref ref="WarnFile" />
82+
<appender-ref ref="ErrorFile" />
83+
</root>
84+
</log4net>

0 commit comments

Comments
 (0)