.NET Core创建一个控制台(Console)程序
.NET Core版本:1.0.0-rc2
Visual Studio版本:Microsoft Visual Studio Community 2015 Update 2
开发及运行平台:Windows 7 专业版 Service Pack 1
新增一个控制台项目(ConsoleLogApp)

在project.json文件中新增依赖项
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-3002702"
},
"Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
"System.Text.Encoding": "4.0.11-rc2-24027",
"System.Text.Encoding.CodePages": "4.0.1-rc2-24027"
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
新增日志输出配置文件(log.json)
我们这个控制台程序主要目的是用来打印输出日志,所以这里用一个单独的日志配置文件来保存相关日志相关选项,比如:是否包括上下文,日志输出最低等级等。
{
"IncludeScopes": false,
"LogLevel": {
"App": "Warning"
}
}
IncludeScopes为false让控制台日志输出时不包含上下文;LogLevel的最低等级设置为:Warning,只有高于这个级别的日志才会输出。App为日志的CategoryName。
入口程序
using System;
using Microsoft.Extensions.Configuration;
using System.Text;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; namespace ConsoleLogApp
{
public class Program
{
public static void Main(string[] args)
{
// 支持中文编码
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // 加载日志配置文件
var setttins = new ConfigurationBuilder().AddJsonFile("log.json").Build(); // 创建ConsoleLogProvider并根据日志类目名称(CategoryName)生成Logger实例
var logger = new ServiceCollection().AddLogging().BuildServiceProvider().GetService<ILoggerFactory>().AddConsole(setttins).CreateLogger("App"); // 设置事件ID
const int eventId = ; // 输出正常提示日志
logger.LogInformation(eventId, "订单号({OderNo})", ""); // 输出警示日志
logger.LogWarning(eventId, "待处理订单数达到5分钟内的预警值:{max}", ); // 输出错误日志
logger.LogError(eventId, "数据库连接超时"); Console.ReadLine();
}
}
}
使用“dotnet restore”来还原依赖项
- 在Git Bash中把当前目录切换到项目的根目录下(本例为:D:\ConsoleLogApp)
- dotnet restore命令是用来寻找当前目录下的项目文件(project.json),然后利用NuGet库还原整个项目的依赖库,然后遍历每个目录生成项目文件,继续还原该项目文件中依赖项。

使用“dotnet build”来编译整个项目

编译成功后,我们在项目根目录下的bin目录中发现编译后的文件夹(D:\ConsoleLogApp\bin\Debug\netcoreapp1.0),命令执行成功后生成了一个Debug目录并在此目录下生成了一个以应用名称命名的文件夹(netcoreapp1.0,这个名称是在project.json中配置的)
使用“dotnet run”来运行程序

我们可以看到info级别的输出日志被过滤掉了,只有Warning以上的日志被输出了。
.NET Core创建一个控制台(Console)程序的更多相关文章
- 002.Create a web API with ASP.NET Core MVC and Visual Studio for Windows -- 【在windows上用vs与asp.net core mvc 创建一个 web api 程序】
Create a web API with ASP.NET Core MVC and Visual Studio for Windows 在windows上用vs与asp.net core mvc 创 ...
- 如何创建 C# 控制台应用程序
[转] 如何:创建 C# 控制台应用程序 本主题旨在生成最简单形式的 C# 程序(控制台应用程序)熟悉 Visual Studio 2008 开发环境.由于控制台应用程序是在命令行执行其所有的输入和输 ...
- 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */
namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...
- C#编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出
编写一个控制台应用程序,输入正方形边长或者半径,计算其周长和面积并输出 (1) 编写两个接口,接口 IShape 包含三个方法:initialize, getPerimeter, getArea.分别 ...
- C#设计编写一个控制台应用程序
设计编写一个控制台应用程序,练习类的继承. (1) 编写一个抽象类 People,具有"姓名","年龄"字段,"姓名"属性,Work 方法. ...
- C#编写一个控制台应用程序,可根据输入的月份判断所在季节
编写一个控制台应用程序,可根据输入的月份判断所在季节 代码: using System; using System.Collections.Generic; using System.Linq; us ...
- C#编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出
编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出. 代码: using System; using System.Collections.Generic; using Syst ...
- 使用IDEA创建一个Servlet应用程序
使用IDEA创建一个Servlet应用程序 第一步:创建web应用 选择web application应用,之后填写项目名称等. 第二步:项目配置 在WEB-INF目录下创建两个文件夹:classes ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...
随机推荐
- The file 'MemoryStream' is corrupted! 的解决办法
The file 'MemoryStream' is corrupted! Remove it and launch unity again! [Position > ] 有时候我们会遇到这个报 ...
- Java分布式应用技术架构介绍
分布式架构的演进 系统架构演化历程-初始阶段架构
- VMware三个版本workstation、server、esxi的区别
VMware三个版本 workstation: 单机级,用在个人桌面系统中,需要操作系统支持 servier:工作组级,用于服务器,需要操作系统支持 esxi:企业级,用于服务器,不需要操作系统支持 ...
- POJ 1330 Nearest Common Ancestors
Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14698 Accept ...
- [C#]LDAP验证用户名和密码
测试环境:VS2008, NET Framework 3.5 公司打算改用LDAP来存储用户名和密码,现在用C#测试下如何能拿到LDAP中的用户名,并检测用户密码是否正确.即输入用户名和密码,可以检验 ...
- storm分组模式
Shuffle grouping: Tuples被随机分配到每一个bolt’s task,以便于每一个bolt’s task获得相同数量的tuples. Fields grouping: Stream ...
- codeforces C. Design Tutorial: Make It Nondeterministic
题意:每一个人 都有frist name 和 last name! 从每一个人的名字中任意选择 first name 或者 last name 作为这个人的编号!通过对编号的排序,得到每一个人 最终顺 ...
- Linux shell tee指令学习
转载自:http://blog.163.com/xujian900308@126/blog/static/12690761520129911304568/ tee tee:读取标准输入的数据,并将 ...
- Hadoop第10周练习—Mahout部署及进行20newsgroup数据分析例子
:搭建Mahout环境 :运行20newsgroup 内容 运行环境说明 1.1 硬软件环境 线程,主频2.2G,6G内存 l 虚拟软件:VMware® Workstation 9.0.0 buil ...
- Fenix – 基于 Node.js 的桌面静态 Web 服务器
Fenix 是一个提供给开发人员使用的简单的桌面静态 Web 服务器,基于 Node.js 开发.您可以同时在上面运行任意数量的项目,特别适合前端开发人员使用. 您可以通过免费的 Node.js 控制 ...