तुम भी संभवतः एक कस्टम TraceWriter इस्तेमाल कर सकते हैं।
उदाहरण: https://gist.github.com/aaronhoffman/3e319cf519eb8bf76c8f3e4fa6f1b4ae
JobHost
config
static void Main()
{
var config = new JobHostConfiguration();
// Log Console.Out to SQL using custom TraceWriter
// Note: Need to update default Microsoft.Azure.WebJobs package for config.Tracing.Tracers to be exposed/available
config.Tracing.Tracers.Add(new SqlTraceWriter(
TraceLevel.Info,
"{{SqlConnectionString}}",
"{{LogTableName}}"));
var host = new JobHost(config);
host.RunAndBlock();
}
नमूना SqlTraceWriter कार्यान्वयन
public class SqlTraceWriter : TraceWriter
{
private string SqlConnectionString { get; set; }
private string LogTableName { get; set; }
public SqlTraceWriter(TraceLevel level, string sqlConnectionString, string logTableName)
: base(level)
{
this.SqlConnectionString = sqlConnectionString;
this.LogTableName = logTableName;
}
public override void Trace(TraceEvent traceEvent)
{
using (var sqlConnection = this.CreateConnection())
{
sqlConnection.Open();
using (var cmd = new SqlCommand(string.Format("insert into {0} ([Source], [Timestamp], [Level], [Message], [Exception], [Properties]) values (@Source, @Timestamp, @Level, @Message, @Exception, @Properties)", this.LogTableName), sqlConnection))
{
cmd.Parameters.AddWithValue("Source", traceEvent.Source ?? "");
cmd.Parameters.AddWithValue("Timestamp", traceEvent.Timestamp);
cmd.Parameters.AddWithValue("Level", traceEvent.Level.ToString());
cmd.Parameters.AddWithValue("Message", traceEvent.Message ?? "");
cmd.Parameters.AddWithValue("Exception", traceEvent.Exception?.ToString() ?? "");
cmd.Parameters.AddWithValue("Properties", string.Join("; ", traceEvent.Properties.Select(x => x.Key + ", " + x.Value?.ToString()).ToList()) ?? "");
cmd.ExecuteNonQuery();
}
}
}
private SqlConnection CreateConnection()
{
return new SqlConnection(this.SqlConnectionString);
}
}
स्रोत
2016-07-27 16:44:55
यह आपके सवाल का जवाब दिया? –
क्या वेबजब्स के साथ एनएलओजी फ़ाइल लक्ष्य का उपयोग करना संभव है? मेरे पास एक सतत नौकरी है जो रात के दौरान चलती है और कभी-कभी त्रुटियां हो सकती हैं, मैं अगले दिन तक नहीं देखूंगा और मैं रोलिंग आर्काइव के साथ निरंतर लॉगिंग करना चाहता हूं - जिनमें से सभी एनएलओजी कर सकते हैं। क्या फाइल सिस्टम में कोई रास्ता है जिस पर डब्ल्यूजे के पास लेखन की पहुंच है? – kamranicus
हां, यह भी होगा कि जिस वेबसाइट पर पहुंच है, वह डी: \ home (% home%) के तहत कुछ भी है, अपनी फाइलें देखने के लिए https: // {sitename} .scm.azurewebsites.net/debugconsole पर जाएं और वहां आप यह समझ सकता है कि आपकी फाइल/लॉग फाइलों को सबसे अच्छा कहां रखना है –