Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LogParser "SELECT * INTO <TABLENAME> FROM <LogFileName>" -o:SQL -server:<servername> -database:<databasename> -driver:"SQL Server" -username:sa -password:xxxxx -createTable:ON
- [Guid("1CC338B9-4F5F-4bf2-86AE-55C865CF7159")]
- public class SPUsageLogParserPlugin : ILogParserInputContext
- {
- private FileStream stream = null;
- private BinaryReader br = null;
- private object[] currentEntry = null;
- public SPUsageLogParserPlugin() { }
- #region LogParser
- protected const int GENERAL_HEADER_LENGTH = 300;
- protected const int ENTRY_HEADER_LENGTH = 50;
- protected string[] columns = {"TimeStamp",
- "SiteGUID",
- "SiteUrl",
- "WebUrl",
- "Document",
- "User",
- "QueryString",
- "Referral",
- "UserAgent",
- "Command"};
- protected string ReadString(BinaryReader br)
- {
- StringBuilder buffer = new StringBuilder();
- char c = br.ReadChar();
- while (c != 0) {
- buffer.Append(c);
- c = br.ReadChar();
- }
- return buffer.ToString();
- }
- #endregion
- #region ILogParserInputContext Members
- enum FieldType
- {
- Integer = 1,
- Real = 2,
- String = 3,
- Timestamp = 4
- }
- public void OpenInput(string from)
- {
- stream = File.OpenRead(from);
- br = new BinaryReader(stream);
- br.ReadBytes(GENERAL_HEADER_LENGTH);
- }
- public int GetFieldCount()
- {
- return columns.Length;
- }
- public string GetFieldName(int index)
- {
- return columns[index];
- }
- public int GetFieldType(int index)
- {
- if (index == 0) {
- // TimeStamp
- return (int)FieldType.Timestamp;
- } else {
- // Other fields
- return (int)FieldType.String;
- }
- }
- public bool ReadRecord()
- {
- if (stream.Position < stream.Length) {
- br.ReadBytes(ENTRY_HEADER_LENGTH); // Entry Header
- string webappguid = ReadString(br);
- DateTime timestamp = DateTime.ParseExact(ReadString(br), "HH:mm:ss", null);
- string siteUrl = ReadString(br);
- string webUrl = ReadString(br);
- string document = ReadString(br);
- string user = ReadString(br);
- string query = ReadString(br);
- string referral = ReadString(br);
- string userAgent = ReadString(br);
- string guid = ReadString(br);
- string command = ReadString(br);
- currentEntry = new object[] { timestamp, webappguid, siteUrl, webUrl, document, user, query, referral, userAgent, command };
- return true;
- } else {
- currentEntry = new object[] { };
- return false;
- }
- }
- public object GetValue(int index)
- {
- return currentEntry[index];
- }
- public void CloseInput(bool abort)
- {
- br.Close();
- stream.Dispose();
- stream = null;
- br = null;
- }
- #endregion
- }
- CREATE TABLE [dbo].[STSlog](
- [application] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [date] [datetime] NULL,
- [time] [datetime] NULL,
- [username] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [computername] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [method] [varchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [siteURL] [varchar](2048) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [webURL] [varchar](2048) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [docName] [varchar](2048) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [bytes] [int] NULL,
- [queryString] [varchar](2048) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [userAgent] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [referer] [varchar](2048) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
- [bitFlags] [smallint] NULL,
- [status] [smallint] NULL,
- [siteGuid] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
- ) ON [PRIMARY]
- "C:projectsSTSLogParserSTSLogParser.exe" 2005-01-01 "c:projectsSTSlog2005-01-01 0.log" c:projectslogparsertmpstslog.csv
- "C:Program FilesLog Parser 2.2logparser.exe" "SELECT 'SharePointPortal' as application, TO_DATE(TO_UTCTIME(TO_TIMESTAMP(TO_TIMESTAMP(date, 'yyyy-MM-dd'), TO_TIMESTAMP(time, 'hh:mm:ss')))) AS date, TO_TIME( TO_UTCTIME( TO_TIMESTAMP(TO_TIMESTAMP(date, 'yyyy-MM-dd'), TO_TIMESTAMP(time, 'hh:mm:ss')))), UserName as username, 'SERVERNAME' as computername, 'GET' as method, SiteURL as siteURL, WebURL as webURL, DocName as docName, cBytes as bytes, QueryString as queryString, UserAgent as userAgent, RefURL as referer, TO_INT(bitFlags) as bitFlags, TO_INT(HttpStatus) as status, TO_STRING(SiteGuid) as siteGuid INTO STSlog FROM c:projectslogparsertmpstslog.csv WHERE (username IS NOT NULL) AND (TO_LOWERCASE(username) NOT IN (domainserviceaccount))" -i:CSV -headerRow:ON -o:SQL -server:localhost -database:SharePoint_SA_IN -clearTable:ON
Add Comment
Please, Sign In to add comment