NLog로 기록된 오류를 이메일로 보내려면 어떻게 해야 합니까?
나는 처음으로 NLog를 사용하고, 텍스트 파일에 쓰는 방법을 알았지만, 지금은 나 자신에게 이메일을 보내고 싶습니다.SMTP 자격 증명을 NLog에 제공하는 경우를 가정하고 있습니다.어셈블리가 시스템을 호출합니다.Net.Mail 네임스페이스 및 전자 메일 전송을 처리합니다.만약 이것이 틀렸다면 저에게 말해주세요.그리고 만약 당신이 이전에 이것을 했다면, 나는 당신이 이메일을 보내는 데 무엇이 걸렸는지에 대한 정보를 주면 감사할 것입니다.
다음은 제 구성입니다.
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<targets>
<!--<target name="logfile" xsi:type="File" fileName="C:\Users\keithb\Desktop\TestLog.txt" />-->
<target name="Mail" xsi:type="Mail" html="true" subject="Error Received" body="${message}"
to="user2@someemaill.com"
from="user@someemail.com"
Encoding="UTF8"
smtpUsername="user@someemail.com"
enableSsl="False"
smtpPassword="pa$$word"
smtpAuthentication="Basic"
smtpServer="mail.someemail.com"
smtpPort="25" />
</targets>
<rules>
<!--<logger name="*" minlevel="Debug" writeTo="logfile" />-->
<logger name="*" level="Error" writeTo="Mail" />
<logger name="*" level="Fatal" writeTo="Mail" />
</rules>
</nlog>
나는 그 오류를 그렇게 부릅니다.
Imports NLog
Public Class HandleGetRouteInfo
Private Shared logger As Logger = LogManager.GetCurrentClassLogger()
Public Shared Function GetRouteInfo(ByVal routeInfo As RequestGetRouteInfo) As GetRouteInfoResponse
'TODO: Check route ID, username, password
logger.Fatal("User" & routeInfo.UserName & "has entered the GetRouteInfo Method.")
logger.Error("User" & routeInfo.UserName & "has entered the GetRouteInfo Method.")
Dim str As String = logger.Name
End Function
End Class
오류, 메시지 및 일반적으로 파일에 기록되는 내용을 이메일로 보내도록 하려고 합니다.예외를 포착하여 자신에게 이메일을 보내는 방법을 알고 있지만, NLog가 이를 수행할 수 있는 기능을 가지고 있다고 생각했습니다.이메일 기능을 사용하는 아주 간단한 예가 있는 모든 튜토리얼이 작동할 것입니다.나는 많은 것을 찾았지만 그것을 작동시킬 수 없었습니다.만약 당신이 이것을 했다면, 샘플 코드나 제가 무엇을 더 해야 하는지에 대한 설명이 도움이 될 것입니다.제가 뭘 잘못하고 있는지 모르겠어요.아이디어 있는 사람?
인코딩 변경 위치UTF8로.UTF-8.
SMTP 설정에 다른 오류(일반적으로 메시지가 전송되지 않는 원인)가 없다고 가정하면 작동합니다.
제 생각에 당신은 그것을 설정해야 할 것 같습니다.mailSettings자세한 내용은 system.net 을 참조하십시오.이와 같은 것:
<system.net>
<mailSettings>
<smtp from="someone@someone.org">
<network host="server.net" userName="someone@someone.org" password="somepassword"/>
</smtp>
<!--Just an example for testing. Can't have both-->
<smtp deliveryMethod="SpecifiedPickupDirectory" from="someone@someone.org">
<network host="localhost"/>
<specifiedPickupDirectory pickupDirectoryLocation="d:\tmp\email"/>
</smtp>
</mailSettings>
</system.net>
첫 번째 옵션은 SMTP 서버를 사용하는 것이고 두 번째 옵션은 로컬 폴더로 전자 메일을 배달하는 것입니다.두 번째 옵션은 테스트에 좋습니다.
언급URL : https://stackoverflow.com/questions/8766263/how-do-i-email-errors-logged-with-nlog
'programing' 카테고리의 다른 글
| XML에서 C# 클래스 생성 (0) | 2023.05.29 |
|---|---|
| 를 누를 때 UILongPressGestureRecognizer가 두 번 호출됩니다. (0) | 2023.05.29 |
| .NET에서 struct와 class의 차이점은 무엇입니까? (0) | 2023.05.29 |
| Github repo in Yarn 패키지 설치 방법 (0) | 2023.05.29 |
| [시스템] 유형을 찾을 수 없습니다.PowerShell의 Web.HttpUtility] (0) | 2023.05.24 |